在命令提示符下重命名

0 windows command-line

我有文件名类似的图像,0034343.jpg我想删除前导零,保留34343.jpg为新文件名。

如何在命令提示符下执行此操作?我试过了REN 00*.jpg *.jpg,但没有用。

小智 5

你应该能够开始:

@setlocal enableextensions enabledelayedexpansion
@echo off
for /f "delims=*" %%a IN ('dir /b 00*.jpg') do (
    set file=%%a
    set newfile=!file:~2!
    echo move !file! !newfile!
)
endlocal
Run Code Online (Sandbox Code Playgroud)

就目前而言,这将简单地回显move命令。echo完成测试后删除。请记住,如果您的文件名中有空格,这可能无法按预期工作。

一点一点地进行:

  • setlocal启用某些cmd.exe扩展,这里首席正在做内部环境变量的延迟扩展的能力for圈。
  • for循环运行CMD dir /b 00*.jpg,在做每个文件一个迭代(设置%%a到文件名)。
  • 第一个set简单地将文件名保存到一个变量中。第二个是从第三个字符开始的子串操作。
  • move会重命名文件。

您可以通过help在命令行输入命令来检查各种命令:

setlocal /?
set /?
for /?
set /?
Run Code Online (Sandbox Code Playgroud)