Batch file DOS批处理命令,将最后一个子目录中的所有文件上移一级
使用此代码,每个子目录中的所有文件都将向上移动一级,而不仅仅是最后一个子目录中的文件。此外,放置bat文件的文件夹中的文件以及bat文件本身会向上移动一级。而这并不是目的。我只想移动最后一个子目录中的文件。Batch file DOS批处理命令,将最后一个子目录中的所有文件上移一级,batch-file,directory,subdirectory,Batch File,Directory,Subdirectory,使用此代码,每个子目录中的所有文件都将向上移动一级,而不仅仅是最后一个子目录中的文件。此外,放置bat文件的文件夹中的文件以及bat文件本身会向上移动一级。而这并不是目的。我只想移动最后一个子目录中的文件。 对于信息,每个文件夹的最后一个子目录也有不同的名称 for /r %%x in (*.*) do move "%%x" "%%x"/../.. 稍后,如果这能起作用,我还会删除空的子目录。但现在最大的问题是将文件上移一级。 作为一个文件夹的示例: 我有: D:\FILMS ------
对于信息,每个文件夹的最后一个子目录也有不同的名称
for /r %%x in (*.*) do move "%%x" "%%x"/../..
稍后,如果这能起作用,我还会删除空的子目录。但现在最大的问题是将文件上移一级。作为一个文件夹的示例:
我有:
D:\FILMS
------\Bikini Spring Break
-------------\EPCSKGCWZCXDJEH
---------------------------\DVD
------------------------------\P2HBSB5.iso
------------------------------\0001.jpg
------------------------------\lees.txt
我想:
D:\FILMS
------\Bikini Spring Break
-------------\EPCSKGCWZCXDJEH
---------------------------\P2HBSB5.iso
---------------------------\0001.jpg
---------------------------\lees.txt
最后,我们打算得到这样的东西:
D:\FILMS\Bikini Spring Break\P2HBSB5.iso --> and other files (".jpg", etc)
D:\FILMS\Breaking the Girls (20122013) PAL\P2HBTG5.iso
D:\FILMS\De marathon\MW93JLNPNH8PLLK.iso
在这里,所有子目录都被删除,所有文件都在他自己的电影名文件夹中。因为所有的电影文件夹都没有相同数量的子目录,所以我认为唯一的解决方案是将最后一个子目录中的所有文件向上移动一级,然后查看哪些文件夹仍然有子目录,并将这些子目录放在单独的文件夹中,因此,我将能够执行代码,直到所有子目录都被删除。在一些示例文件夹上测试这一点 我在此澄清,它不会将文件移动一个级别,而是将电影文件夹下的所有文件移动到同一个电影文件夹中。 IE:d:\films\Bikini Spring Break下的所有文件(包括子目录)将被移动到
d:\films\Bikini Spring Break\
d:\films\Bikini春假\P2HBSB5.isod:\films\Bikini春假\0001.jpg
d:\films\Bikini Spring Break\lees.txt 它将提示是否有任何文件具有相同的名称 它应该将每个电影文件夹下的所有文件移动到相应的电影文件夹中,如果这些额外的文件夹为空,它也将删除它们
@echo off
pushd "d:\films"
for /f "delims=" %%a in (' dir /ad /b ') do (
pushd "%%a"
for /r %%b in (*) do move /-y "%%b" .
for /f "delims=" %%c in (' dir /b /s /ad ^|sort /r') do rd "%%c" 2>nul
popd
)
popd
缺少一个点:
移动“%%b”/-y
;)@不,它会将所有文件移动到当前目录。谢谢你的检查。啊,好的。我想再上一层楼。但是要移动到当前文件夹,您根本不需要点。@endro是的,您是对的。在黑暗时代,我们总是使用
作为当前文件夹。在您发表评论之后,我还注意到/-y
在命令末尾生成了一个错误,因此我将其移动。助教