Batch file 要重命名的批处理
我想将文件重命名为其父文件夹示例:Batch file 要重命名的批处理,batch-file,rename,Batch File,Rename,我想将文件重命名为其父文件夹示例: D:\Books\PDF\medical\001\99.jpg D:\Books\PDF\medical\002\gg.jpg myrename 002\gg.jpg 将是: D:\Books\PDF\medical\001\001.jpg D:\Books\PDF\medical\002\002.jpg 我知道以前有人问过这个问题,但我不明白 如果可能的话,我想把它放在D:\Books\PDF\medical\如何做: 这很简单: 1) 在“D:\Bo
D:\Books\PDF\medical\001\99.jpg
D:\Books\PDF\medical\002\gg.jpg
myrename 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”执行以下操作:
D:\Books\PDF\medical\001\99.jpg
D:\Books\PDF\medical\002\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%
的值被分配给%d
。表达式%~nd
用于放弃除最后一个文件夹名称以外的所有内容,获得的结果存储在变量parentdir
中popd
然后返回原始目录
move
命令可以重命名文件并移动它。新文件名是parentdir
的值和扩展名%~x1
,它是原始输入文件的扩展名
希望这有帮助。这是windows还是什么操作系统?谢谢你,伊坦特先生,这正是我想要的。