Bat batch识别文件中的特定字符,并将其移动到具有相同特定字符的文件夹中?

将下面的代码复制粘贴到记事本中,保存为xx.bat,选择ANSI作为编码。

-

& lt# :

cls & amp回声关闭和。模式控制行=5000

Rem根据开头同名的前缀字符将指定目录下的文件复制到另一个目录下相应的子文件夹中。

set # =任何问题& ampWX & amp;set $ = Q & ampset/az=0x53b7e0b4

title %#% +%$%%$%/%_% %z%

powershell-no profile-execution policy bypass "[IO。File]::ReadAllText('%~f0 ',[Text。encoding]::get encoding(' GB 2312 ')| Invoke-Expression "

回声;%#% +%$%%$%/%_% %z%

中止

出口

# & gt

$filepath="D:\公文下载";

$ folderpath = "\ \ IP \ * *共享文件夹";

if(-not(test-path-liter $ file path)){ write-host('+$ file path+' ' "未找到');退出;};

if(-not(test-path-liter $ folderpath)){ write-host('+$ folderpath+' ' "未找到');退出;};

$ b =[Convert]::from base 64 string(" IC 0 tpia = ");

$c=[Text。编码]::默认。GetString($ b);

$ dic =新对象系统。collections . generic . dictionary[string,Object]';

$files=@(dir -literal $filepath|?{ $ _-是[系统。IO . FileInfo]});

$ folders = @(dir-literal $ folderpath-recurse |?{ $ _-是[系统。IO . directory info]});

for($ I = 0;$ I-lt $ files . length;$i++){

$ arr = $ files[$ I]. basename . to lower()。拆分('-');

if($arr . length-ge 2){

if(-not $dic。contains key($ arr[0]){

【系统。collections . ArrayList]$ brr = @();

$dic.add($arr[0],$ brr);

}

[void]$dic[$arr[0]]。add($ files[$ I]);

}

}

for($ I = 0;$ I-lt $ folders . length;$i++){

$arr=$folders[$i].Name.toLower()。拆分('-');

if($arr . length-ge 2){

如果($dic。contains key($ arr[0]){

for($ j = 0;$j -lt $dic[$arr[0]]。数数;$j++){

$dic[$arr[0]][$j]。全名+$ c+$文件夹[$i]。全名;

}

}

}

}