我在文件中有一组代码,我想使用该代码重命名文件夹中的文件。就像第一个文件的第一个代码,然后是第二个文件的第二个代码。
for /f "delims=" %%x in (code.csv) do call :rename "%%x"
pause
GOTO :EOF
:rename
REN "*.jpg" "a/%1.jpg"
这是我写的内容,但这就像为所有文件运行第一个代码,并且正在获取存在的重复文件名,或者文件找不到错误。即使文件正在重命名,但是由于一些不必要的循环,我仍然花费大量时间。
任何使它变得完美的帮助都将是值得的
您需要一种并行读取目录和csv
的方法。有一个技巧可以做到这一点:
@ECHO OFF
setlocal enabledelayedexpansion
<code.csv (
for /f "delims=" %%x in ('dir /b *.jpg') do (
set "NewName="
set /p NewName=
if not defined NewName goto :eof
ECHO ren "%%x" "!NewName!"
)
)
注意:在验证ECHO
命令是否确实要执行实际启用ren
命令后,将其删除。
<code.csv ( ... )
在set /p
循环中为for
提供另一行。在读取之前将其清除,因此当NewName
中没有更多名称时,csv
变量将变得不确定。未定义(没有更多名称)时,退出for
循环。
[当没有其他文件要重命名或csv
文件中没有新名称时,循环停止。
请参阅dir /?
-尤其是/o
开关,以了解如何对文件的名称,日期或大小进行排序(如果需要)。
[另一种可能性是构建csv
内容或文件的数组,但我认为这对于此任务来说是过大的选择。