用批处理文件重命名文件夹中的所有文件
Posted
技术标签:
【中文标题】用批处理文件重命名文件夹中的所有文件【英文标题】:rename all files in a folder with batch file 【发布时间】:2016-03-26 02:16:54 【问题描述】:我可以吗?我试过了,但它不起作用
for %%a in (*.*) do ren sdel%random%.sdel %%a
我也试过了
ren *.????? sdel%random%.sdel
我做错了什么?
【问题讨论】:
看起来就像你在 dostips 上提出的问题,我告诉过你两次你的重命名是向后的。 如果你对 c++ 没问题,我可以做到。这是微不足道的。 【参考方案1】:试试这个:
@echo off
setlocal EnableDelayedExpansion
for %%a in (*.*) do (
if not "%~nx0"=="%%a" ren "%%a" "sdel!random!.sdel"
)
在 for 循环中,您应该使用 EnableDelayedExpansion 并使用 !而不是 % 变量。请注意,我还添加了一个 if 检查,因此您不会重命名批处理文件本身。如果您不这样做,它将重命名批处理文件,然后无法找到自己,并且不会重命名任何其他文件。
【讨论】:
谢谢丹尼斯,但如果文件名包含空格,代码不会改变,有没有办法解决这个问题? 如果路径可能包含空格,请在其周围加上引号(或者随后将它们放在任何路径或文件名周围):ren "%%~a" "sdel!random!.sdel"
如果你觉得我的回答解决了你的问题,你应该点击它左边的对勾将它标记为正确以上是关于用批处理文件重命名文件夹中的所有文件的主要内容,如果未能解决你的问题,请参考以下文章