【问题标题】:Do 2 commands with the "for" command in batch使用“for”命令批量执行 2 个命令
【发布时间】:2017-08-31 11:06:35
【问题描述】:

我想制作一个批处理脚本,该脚本将进入文件夹 %~dp0\Playlists\%list% 并将其中的每个 .mp3 文件重命名为下一个数字。 例如,顶部文件将重命名为“1”,第二个文件将重命名为“2”。我到处找,但我找不到我的代码为什么不起作用。

set playnmbr=0
for /f "usebackq delims=|" %%f in (`dir /b "%~dp0\Playlists\%list%"`) do (
rename %~dp0\Playlists\%list%\%%f %playnmbr%.mp3
set /A playnmbr=%playnmbr%+1
)

【问题讨论】:

  • 你能给我看一下我的代码的改进版本吗?我在它之前添加了“SETLOCAL EnableDelayedExpansion”,但它仍然不起作用。

标签: file batch-file directory rename


【解决方案1】:

你错过了setlocal enabledelayedexpansion(正如 npocmaka 所写):

setlocal enabledelayedexpansion
set playnmbr=0
for /f "usebackq delims=|" %%f in (`dir /b "%~dp0\Playlists\%list%"`) do (
    rename %~dp0\Playlists\%list%\%%f !playnmbr!.mp3
    set /A playnmbr=!playnmbr!+1
)

另外,%list% 未在您的代码中定义。

【讨论】:

  • 只是一个建议:将set /A playnmbr=!playnmbr!+1 更改为set /A playnmbr+=1
猜你喜欢
  • 1970-01-01
  • 2012-06-05
  • 1970-01-01
  • 2017-03-06
  • 2017-11-26
  • 2019-09-09
  • 1970-01-01
  • 1970-01-01
  • 2012-11-15
相关资源
最近更新 更多