批处理文件以从 CSV 读取文件名并重命名文件夹中的文件

阿诺普

我在一个文件中有一组代码,我想用该代码重命名文件夹中的文件。就像第一个文件的第一个代码然后第二个文件的第二个代码一样。

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 /pfor循环逐行提供在读取之前清除它,因此NewNamecsv. 退出for循环,当它是未定义的(没有更多的名字)。

当不再有要重命名的文件或文件中不再有新名称时,循环停止csv

请参阅dir /?- 特别是/o关于如何根据名称、日期或大小对文件(如果需要)进行排序开关。

另一种可能性是构建csv内容或文件的数组,但我认为这对这项任务来说太过分了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档