如何批量更改文件夹中的所有扩展名。 (使用目录)

时间:2018-03-17 02:21:21

标签: batch-file

我正在尝试制作批处理程序,将所有文件从flashdrive复制到我的桌面,然后将所有批处理文件更改为文本文件。我知道有很长的路要走......

ren "%userprofile%\Desktop\Batch\*.bat" "*.txt"
ren "%userprofile%\Desktop\Batch\Format-Transfer\*.bat" "*.txt"
ren "%userprofile%\Desktop\Batch\Fun Files\*.bat" "*.txt"
ren "%userprofile%\Desktop\Batch\Fun Files\Local ShutDown\*.bat" "*.txt"
...And so on

...但是,我问是否有办法在每个子目录上递归使用类似的命令。

[我目前使用以下行解决了文件移动部分。]

xcopy /s %dr%:\*.* "%userprofile%\Desktop\Batch"

2 个答案:

答案 0 :(得分:0)

如果从命令行测试:

set source=C:\test\Folder1

for /F "delims=" %a in ('dir "%source%" /b /s /A:-D ^| find ".bat"')  do (
move "%~pa%~na.bat" "%~pa%~na.txt"
)

如果在BAT文件中测试

set source=C:\test\Folder1

for /F "delims=" %%a in ('dir "%source%" /b /s /A:-D ^| find ".bat"')  do (
move "%%~pa%%~na.bat" "%%~pa%%~na.txt"
)

答案 1 :(得分:0)

for /r %userprofile%\Desktop\Batch %%d in (.) do if exist %%d\*.bat ren %%d\*.bat *.txt

根据需要在args周围加上双引号。