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

时间:2014-06-17 16:39:00

标签: batch-file command-line-interface

我需要一个命令从Windows CLI运行,以识别只包含一个文件的任何文件夹(或子文件夹)。如果文件夹包含两个文件,则不应包含该文件。最后,我需要将此列表输出到文本文件。它应包含完整的文件夹路径。

Ex:OutputLog.txt

C:\fold1 C:\fold1\sub C:\fold3 C:\fold4

3 个答案:

答案 0 :(得分:1)

这应该可以识别带有一个文件的文件夹。

@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)

@echo off

set "parentfolder=c:\test"

for /f "tokens=* delims=" %%F in ('dir /s /a:d /b "%parentfolder%"') do (
    dir "%%F"|findstr /b "1 File(s)" >nul 2>&1 && echo %%F
)

这将列出父文件夹中只有一个文件的所有子文件夹。当它检查dir命令输出的字符串时,如果语言设置/ windows版本提供不同的DIR命令输出,则应更改它。

答案 2 :(得分:0)

@echo off
setlocal EnableDelayedExpansion

(for /D /R %%a in (*) do (
   set count=0
   for %%b in ("%%a\*.*") do set /A count+=1
   if !count! equ 1 echo %%a
)) > OutputLog.txt