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_For Loop_Directory - Fatal编程技术网

Batch file 将多个目录合并到一个目录中,根据公共目录前缀命名

Batch file 将多个目录合并到一个目录中,根据公共目录前缀命名,batch-file,for-loop,directory,Batch File,For Loop,Directory,我创建了一个批处理文件,将目录重命名为-前面的字符串,但现在出现了一个问题: 比如说,我有以下文件夹: 鸣人-480p 火影忍者-720p 火影忍者-1080p 我只想有一个目录,名为《火影忍者》,其中包含这三个目录的内容 我使用此批处理文件: for /f "tokens=1*delims=-" %%a in ('dir /b "*-*.*"') do ren "%%a-%%b" "%%a%%~xb" …但即使使用批处理文件,结果目录也似乎是: 火影忍者 火影忍者-720p 火影忍者-108

我创建了一个批处理文件,将目录重命名为
-
前面的字符串,但现在出现了一个问题:

比如说,我有以下文件夹:

鸣人-480p
火影忍者-720p
火影忍者-1080p

我只想有一个目录,名为《火影忍者》,其中包含这三个目录的内容

我使用此批处理文件:

for /f "tokens=1*delims=-" %%a in ('dir /b "*-*.*"') do ren "%%a-%%b" "%%a%%~xb"
…但即使使用批处理文件,结果目录也似乎是:

火影忍者
火影忍者-720p
火影忍者-1080p


如何将这三个目录合并为一个名为《火影忍者》?

如果我理解清楚,您希望合并这三个文件夹。这在batchfile语言中是不可能的,因此需要将两个文件夹的内容移动到一个文件夹中,删除它们并重命名其余文件夹。这是一种可以做到这一点的方法:

@echo关闭
::将3个文件夹合并为一个文件夹的批处理脚本!
::我们假设这3个文件夹位于C:\。
对于/R C:\Naruto-480p%%a IN(*.*)请移动“%%a”C:\Naruto-1080p
对于/R C:\Naruto-720p%%b IN(*.*)请移动“%%b”C:\Naruto-1080p
rd鸣人-480p鸣人-720p
重命名火影忍者-1080p火影忍者
现在,让我们分析一下批处理文件程序:

开头的行是注释,它们被忽略。事实上,它们是无效的标签

for/rc:\Naruto-480p%%a IN(*.*)do@move“%%a”C:\Naruto-1080p
for/rc:\Naruto-720p%%b IN(*.*)do@move“%%b”C:\Naruto-1080p
<正如您已经知道的,code>for是一个循环。
/R
选项告诉循环遍历开始中指定的文件夹的所有子文件夹(分别是C:\Naturo-480p和C:\Naruto-720p)<代码>在(*.*)中表示处理找到的所有文件,最后移动每个文件

rd鸣人-480p鸣人-720p
删除文件夹
Naruto-480p
Naruto-720p

重命名鸣人-1080p鸣人
重命名文件夹


我希望这有助于您摆脱麻烦:-)。

您不能将一个位置中的三个目录重命名为相同的名称,原因与您不能在一个目录中有三个具有相同名称和扩展名的文件相同!你需要
ren
ame,
move
文件和
r
emove
d
目录,或者
m
ake
d
目录,
move
文件和
r
emove
d
目录。你的目录名中也没有
字符!您还应该使用
/AD
选项,以便
DIR
命令仅列出文件夹。