我在一个文件中有一组代码,我想用该代码重命名文件夹中的文件。就像第一个文件的第一个代码然后第二个文件的第二个代码一样。
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
内容或文件的数组,但我认为这对这项任务来说太过分了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句