【问题标题】: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++ 没问题,我可以做到。这是微不足道的。

标签: batch-file cmd rename file-rename batch-rename


【解决方案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"
  • 如果你觉得我的回答解决了你的问题,你应该点击它左边的对勾将它标记为正确
猜你喜欢
  • 2011-03-02
  • 2011-12-26
  • 2011-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多