我想将文件重命名为其父文件夹示例:
D:\Books\PDF\medical\001\99.jpg
D:\Books\PDF\medical\002\gg.jpg
成为:
D:\Books\PDF\medical\001\001.jpg
D:\Books\PDF\medical\002\002.jpg
我知道这个问题之前被问过,但我无法理解。
如果可能的话我想把它放在D:\Books\PDF\medical\
最佳答案
如何做:
这很简单:
1) 在“D:\Books\PDF\medical\”中创建一个名为“myrename.bat”的新文本文件。
2)将以下内容粘贴到其中:
@echo off
pushd %~p1
for %%d in ("%CD%") do set "parentdir=%%~nd"
popd
move /Y %1 D:\Books\PDF\medical\"%parentdir%%~x1" > nul
3) 从“D:\Books\PDF\medical\”中,运行批处理文件,其第一个参数是名称 要重命名的文件的名称。例如,您将在示例中对文件“gg.jpg”执行以下操作:
myrename 002\gg.jpg
这会将文件“99.jpg”重命名为“002.jpg”并将其移动到“D:\Books\PDF\medical\”。
它是如何工作的
在批处理中,%~p1
返回第一个参数的相对路径,即它会删除文件夹。例如,如果您运行 myrename Bla\002\gg.jpg
,%~p1
将是 Bla\002
。 pushd
然后进入该目录。
for
循环应该从当前路径中提取最后一个文件夹,由 %CD%
给出,以及 %CD%
的值code> 被分配给 %%d
。表达式%~nd
用于丢弃除最后一个文件夹名称之外的所有内容,获得的结果存储在变量parentdir
中。 popd
然后返回到原始目录。
move
命令既可以重命名文件,也可以移动它。新文件名是 parentdir
的值和扩展名 %~x1
,这是原始输入文件的扩展名。
希望这有帮助。
关于batch-file - 批量重命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12041902/