3

我有一堆分布在文件夹和子文件夹中的图像文件。我想做的是将它们全部移动到一个文件夹中,并根据它们以前的路径重命名它们。

为了说明,文件 src/a/b/file1.png

应该变成 src/a_b_file1.png

在 Linux 中可能有一种聪明的方法可以做到这一点,但我目前使用的是 Windows 7 机器。

任何提示都会很好,gui 或命令行工具或一些脚本,没关系。谢谢。

4

3 回答 3

3

试试这个:然后在记事本中检查 renfile.bat 以查看它是否适合您。如果需要,请添加更多文件类型。

@echo off
echo.@echo off> renfile.bat
for /f "delims=" %%a in ('dir *.jpg *.png *.gif /b /s /a-d ') do call :next "%%a"
echo renfile.bat created
pause
goto :eof
:next
set "var=%~1"
call set "var=%%var:%cd%=%%"
set "var=%var:\=_%"
>>renfile.bat echo ren "%~1" "%var:~1%"

和另一个批处理文件,用于在重命名后移动所有文件:

@echo off
md "c:\target folder\"
for /f "delims=" %%a in ('dir *.jpg *.png *.gif /b /s /a-d ') do (
move "%%a" "c:\target folder\"
)
于 2013-06-21T04:02:08.590 回答
2

您可以使用高级重命名器,该工具提供了大量的重命名标签,例如。

[DirName:X] 插入最后一个目录名称。例如。“c:\windows\notepad.exe”将给出“windows”作为结果。

如果 X 是数值,则该值将用于从路径右侧按顺序选择文件夹名称。

[Dirname:3] for "c:\programs\games\new\mine sweeper\highscore\file.txt" 将产生 "new"
[Dirname:4] for "c:\programs\games\new\mine sweeper\highscore\file.txt" 将产生 "games"
于 2013-06-21T04:14:34.813 回答
1

我最终使用了这个程序。易于安装且易于使用,乍一看。

于 2013-06-29T20:09:34.617 回答