Batch file Windows命令,用于标识只有一个文件的文件夹并移动该文件

Batch file Windows命令,用于标识只有一个文件的文件夹并移动该文件,batch-file,command-line-interface,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 &&am

我需要从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
)
我很感激能得到的任何帮助


谢谢。

您可以使用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
你可以试试。