如何更改此批处理命令以仅使用选定的文件夹?

时间:2014-03-23 00:25:15

标签: windows batch-file

下面的代码将每个影片文件夹下的所有文件移动到相应的影片文件夹中,如果有空文件夹,则会将其删除。
例如:
之前:
d:\ MOVIES
----------- \比基尼春假
------------------------------- \ EPCSKGCWZCXDJEH
-------------------------------------------------- ---------- \ DVD
-------------------------------------------------- --------------- \ P2HBSB5.iso
-------------------------------------------------- --------------- \ 0001.JPG
-------------------------------------------------- --------------- \ lees.txt

在:
d:\ MOVIES
------------ \比基尼春假
---------------------------------- \ P2HBSB5.iso
---------------------------------- \ 0001.JPG
---------------------------------- \ lees.txt

@echo off
 pushd "d:\MOVIES"
    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

是否可以通过此批处理命令更改代码中的某些内容,以便仅在选定的文件夹中执行代码?

如果将此批处理命令放入“MOVIES”文件夹并从那里执行,则可能只是一个小改动。 例如:
如果从这三部电影中仅在“MOVIES”文件夹中选择“Bikini Spring Break”和“Static”,我只想要在这些电影上执行的代码。

D:\ MOVIES \ Bikini Spring Break
--------------- \打破女孩们 --------------- \静态

1 个答案:

答案 0 :(得分:0)

这可能适合你 -

使用拖放操作处理所选的文件夹 将文件夹拖到批处理文件中。

当将文件递归地移动到电影文件夹中时,它不会检查是否存在文件名冲突。

未经测试,请制作一些文件夹副本并先测试。

@echo off
:loop
       pushd "%~1"
           for /r %%b in (*) do move "%%b" .
           for /d %%c in (*) do rd /s /q "%%c"
       popd
       shift
       if not "%~1"=="" goto :loop