Batch file 使用批处理文件重命名文件夹中的所有文件
我可以用批处理文件重命名文件夹中的所有文件吗?我尝试过这个方法,但不起作用Batch file 使用批处理文件重命名文件夹中的所有文件,batch-file,cmd,rename,file-rename,batch-rename,Batch File,Cmd,Rename,File Rename,Batch Rename,我可以用批处理文件重命名文件夹中的所有文件吗?我尝试过这个方法,但不起作用 for %%a in (*.*) do ren sdel%random%.sdel %%a 我也试过 ren *.????? sdel%random%.sdel 都不工作我做错了什么?试试这个: @echo off setlocal EnableDelayedExpansion for %%a in (*.*) do ( if not "%~nx0"=="%%a" ren "%%a" "sdel!random!.sd
for %%a in (*.*) do ren sdel%random%.sdel %%a
我也试过
ren *.????? sdel%random%.sdel
都不工作我做错了什么?试试这个:
@echo off
setlocal EnableDelayedExpansion
for %%a in (*.*) do (
if not "%~nx0"=="%%a" ren "%%a" "sdel!random!.sdel"
)
在for循环中,应该使用EnableDelayedExpansion和use!而不是变量的%。注意,我还添加了一个if检查,这样就不会重命名批处理文件本身。如果您不这样做,它将重命名批处理文件,然后无法找到自己,并且不会重命名任何其他文件。尝试以下操作:
@echo off
setlocal EnableDelayedExpansion
for %%a in (*.*) do (
if not "%~nx0"=="%%a" ren "%%a" "sdel!random!.sdel"
)
在for循环中,应该使用EnableDelayedExpansion和use!而不是变量的%。注意,我还添加了一个if检查,这样就不会重命名批处理文件本身。如果您不这样做,它将重命名批处理文件,然后无法找到它自己,并且不会重命名任何其他文件。谢谢Dennis,但是如果文件名包含空格,代码不会更改,有没有办法解决这个问题?如果路径可能包含空格,请在其周围加引号(或者作为结果,在任何路径或文件名周围加引号):
ren“%%~a”“sdel!random!.sdel”
如果您觉得我的答案解决了您的问题,您应该单击它左侧的复选框将其标记为correct谢谢Dennis,但是如果文件名包含空格,代码不会更改,有办法解决吗?如果路径可能包含空格,请在其周围加引号(或者顺其自然,并将它们放在任何路径或文件名周围):ren“%%~a”“sdel!random!.sdel”如果你觉得我的答案解决了你的问题,你应该点击左边的检查来标明它是正确的,就像你在DOTPIP上问的问题一样,我告诉你两次你的名字是向后重命名的。如果你可以用C++来做,我可以做。这很简单。看起来就像你在DOTPIP上问的问题,我告诉过你两次。如果你对C++有把握,我可以做。这是微不足道的。