Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 要重命名的批处理_Batch File_Rename - Fatal编程技术网

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还是什么操作系统?谢谢你,伊坦特先生,这正是我想要的。