2

我想将文件重命名为其父文件夹示例:

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\

4

1 回答 1

2

怎么做:

这很容易:

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%分配给%%d。该表达式%~nd用于丢弃除最后一个文件夹名称之外的所有内容,获得的结果存储在变量 中parentdirpopd然后返回到原来的目录。

move命令既重命名文件又移动它。新文件名是 的值parentdir和扩展名%~x1,即原始输入文件的扩展名。

希望这可以帮助。

于 2012-08-20T22:19:35.610 回答