如何用批处理给当前目录下的所有文件夹下所有文件文件名后添加相同的文字?

比如路径下有3个文件夹:文件夹1,文件夹2,文件夹3.这3个文件夹下分别有2个文件,需要吧这3个文件夹下每个文件的文件名后面都加上相同的文字或数字,求大神给帮忙写下 谢谢了。只有5分了

@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%"

追问

这个是在文件名前面加相同的字,我要的是后面,加后面的这问题我找资料解决了 谢谢大神,分不多,给你了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-10-11
不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为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;
}
}
}追问

为啥这批处理执行了还是原来的文件名没有变化的,求大神修改下 谢谢了

追答

按照运行后窗口标题栏中的提示联系我

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网