Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 使用批处理文件重命名文件夹中的所有文件_Batch File_Cmd_Rename_File Rename_Batch Rename - Fatal编程技术网

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++有把握,我可以做。这是微不足道的。