【问题标题】:Change file name and move files based on file path in Windows 7在 Windows 7 中根据文件路径更改文件名和移动文件
【发布时间】:2013-06-17 19:17:44
【问题描述】:

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

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

应该变成 src/a_b_file1.png

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

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

【问题讨论】:

  • 这是一个常见问题,使用谷歌或搜索论坛。到目前为止,您尝试过什么?
  • 我唯一真正尝试过的是这个this 工具。但是我搜索了谷歌,我唯一能找到的东西似乎只支持重命名给定一些正则表达式(如上面的链接),但它们似乎不支持使用文件的路径作为目标文件名的一部分。但也许有些东西我不明白......

标签: windows file command-line scripting


【解决方案1】:

试试这个:然后在记事本中检查 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\"
)

【讨论】:

    【解决方案2】:

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

    [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"

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-09
        • 1970-01-01
        • 2013-08-03
        • 2020-05-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多