Windows命令用于标识仅包含一个文件的文件夹并移动文件

时间:2018-01-03 15:00:45

标签: batch-file command-line-interface

我需要一个命令从Windows CLI运行,以识别只包含一个文件的任何文件夹(或子文件夹)。如果文件夹包含两个文件,则不应包含该文件。最后,我希望将单个文件移动到另一个文件夹并删除原始文件夹。

我找到了这段代码,但我不知道如何从这里开始......

@echo off
for /d /r "d:\base\folder" %%a in (*) do (
    dir /b /a-d "%%a" 2>nul |find /c /v "" |findstr "^1$" >nul && >>file.txt echo %%a
)

我感谢任何帮助。

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用Robocopy过滤文件夹,只包含一个文件。它只被过滤一次 - 而不是几次。像往常一样移动和删除。

for /f "tokens=1*" %%C in ('
 robocopy /L /s "d:\base\folder" ".. ListFolders ..\\" /njh /nc /nfl /njs ^
 ^|findstr /irc:" 1..:" ^|sort /r ') do @echo move %%D* D:\Dest && echo rd %%D