如何用批处理给当前目录下的所有文件夹下所有文件文件名后添加相同的文字?
发布网友
发布时间:2022-04-29 12:10
我来回答
共2个回答
热心网友
时间:2023-10-05 15:09
@echo off
set s=同样的字
set p=r:\test
dir/s/b/a-d "%p%"
for /f "tokens=*" %%i in ('dir/s/b/a-d "%p%"') do move "%%i" "%%~dpi"%s%"%%~nxi"
dir/s/b/a-d "%p%"
追问这个是在文件名前面加相同的字,我要的是后面,加后面的这问题我找资料解决了 谢谢大神,分不多,给你了
热心网友
时间:2023-10-05 15:09
不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的多个文件夹放一起双击运行
-----------------------------------------------------------------
<# :
cls&echo off&cd /d "%~dp0"&mode con lines=5000
rem 在当前目录里的多个子文件夹下的所有文件的名称末尾添加指定字符串内容
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "currentpath=%cd%"
powershell -NoProfile -ExecutionPolicy bypass "[IO.File]::ReadAllText('%~f0',[Text.Encoding]::GetEncoding('GB2312'))|Invoke-Expression"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#>
$addword="相同的文字";
$b=[Convert]::FromBase64String("IC0tPiA=");
$c=[Text.Encoding]::Default.GetString($b);
$currentpath=get-item -liter $env:currentpath;
$folders=@(dir -liter $currentpath.FullName|?{$_ -is [System.IO.DirectoryInfo]});
for($i=0;$i -lt $folders.length;$i++){
$files=@(dir -liter $folders[$i].FullName -recurse|?{$_ -is [System.IO.FileInfo]});
for($j=0;$j -lt $files.length;$j++){
if(-not $files[$j].BaseName.EndsWith($addword)){
$nname=$files[$j].BaseName+$addword+$files[$j].Extension;
$files[$j].FullName.Substring($currentpath.FullName.length)+$c+$nname;
}
}
}追问为啥这批处理执行了还是原来的文件名没有变化的,求大神修改下 谢谢了
追答
按照运行后窗口标题栏中的提示联系我