Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 更改命令以排除子文件夹_Windows_Cmd_Command Line_Windows Vista - Fatal编程技术网

Windows 更改命令以排除子文件夹

Windows 更改命令以排除子文件夹,windows,cmd,command-line,windows-vista,Windows,Cmd,Command Line,Windows Vista,我正在使用这个命令行 for /r /d %F in (.) do @dir /b "%F" | findstr "^" >nul || echo %~fF 查找空文件夹 但是,此命令也适用于子文件夹。如何将其更改为排除子文件夹 从命令中删除/r,使用以下命令: for /d %F in (*) do @dir /b "%F" | findstr "^" >nul || echo %~fF 从命令中删除/r,使用以下命令: for /d %F in (*) do @dir /

我正在使用这个命令行

 for /r  /d %F in (.) do @dir /b "%F" | findstr "^" >nul || echo %~fF
查找空文件夹


但是,此命令也适用于子文件夹。如何将其更改为排除子文件夹

从命令中删除
/r
,使用以下命令:

for /d %F in (*) do @dir /b "%F" | findstr "^" >nul || echo %~fF

从命令中删除
/r
,使用以下命令:

for /d %F in (*) do @dir /b "%F" | findstr "^" >nul || echo %~fF

因为这显然是针对当前目录的,所以我会选择稍微不同的替代方案。这是因为
For/D
不会选择每个目录,它会忽略隐藏的目录,并且
Dir/B
本身不会选择每个文件和目录

For/F“EOL=?Delims=“%G In('Dir/B/AD')Do@Dir/B/A”%G“2>NUL |%\uuuu AppDir\uuuu%find.exe/V”“>NUL | | Echo%G
如果您喜欢结果的相对路径,只需使用
Echo.\%G

答案使用
2>NUL
将任何未找到的
文件
错误消息重定向到NUL设备。它还使用
find.exe
作为
findstr.exe
的替代方案,以确保答案与现有答案不太相似,并且因为您并不真正需要它的特殊功能

要获取有关所用命令的详细信息,请打开一个窗口,根据需要输入以下命令:

  • For
    命令
    For/?
    帮助For
  • Dir
    命令
    Dir/?
    help Dir
  • Find
    命令
    Find/?
    help Find
  • Echo
    命令
    Echo/?
    help Echo
%\uuuu AppDir\uuuu%
变量是一个特殊的动态创建变量,其内容无法修改。无论是在32位还是64位进程下运行,它都将始终指向相应的
\System32
目录。结果是,如果您的标准环境损坏或修改,该命令将不会在其正确位置运行Microsoft的相应版本的
find.exe
,从而消除故障。此外,我使用了
.exe
扩展名作为
find
,因为它不是一个内部命令,如果
%PATHEXT%
变量损坏或修改,该命令仍然可以正常工作。
[编辑]

当您进一步澄清您正在寻找的是那些没有文件,而不是没有文件和目录的用户时,我将提供此替代方案,使用Microsoft的
where.exe
,minumum:

For/F“EOL=?Delims=“%G In('Dir/B/AD')Do@%\uuuuu AppDir\uuuuu%where.exe/Q”%G“:*>Nul| | Echo%G
如果您喜欢结果的相对路径,只需使用
Echo.\%G


要获取有关
where
命令的更多信息,请打开一个窗口,然后输入以下命令,
where/?
,或者输入此
帮助where
,因为这显然适用于当前目录,因此我会选择稍微不同的选项。这是因为
For/D
不会选择每个目录,它会忽略隐藏的目录,并且
Dir/B
本身不会选择每个文件和目录

For/F“EOL=?Delims=“%G In('Dir/B/AD')Do@Dir/B/A”%G“2>NUL |%\uuuu AppDir\uuuu%find.exe/V”“>NUL | | Echo%G
如果您喜欢结果的相对路径,只需使用
Echo.\%G

答案使用
2>NUL
将任何未找到的
文件
错误消息重定向到NUL设备。它还使用
find.exe
作为
findstr.exe
的替代方案,以确保答案与现有答案不太相似,并且因为您并不真正需要它的特殊功能

要获取有关所用命令的详细信息,请打开一个窗口,根据需要输入以下命令:

  • For
    命令
    For/?
    帮助For
  • Dir
    命令
    Dir/?
    help Dir
  • Find
    命令
    Find/?
    help Find
  • Echo
    命令
    Echo/?
    help Echo
%\uuuu AppDir\uuuu%
变量是一个特殊的动态创建变量,其内容无法修改。无论是在32位还是64位进程下运行,它都将始终指向相应的
\System32
目录。结果是,如果您的标准环境损坏或修改,该命令将不会在其正确位置运行Microsoft的相应版本的
find.exe
,从而消除故障。此外,我使用了
.exe
扩展名作为
find
,因为它不是一个内部命令,如果
%PATHEXT%
变量损坏或修改,该命令仍然可以正常工作。
[编辑]

当您进一步澄清您正在寻找的是那些没有文件,而不是没有文件和目录的用户时,我将提供此替代方案,使用Microsoft的
where.exe
,minumum:

For/F“EOL=?Delims=“%G In('Dir/B/AD')Do@%\uuuuu AppDir\uuuuu%where.exe/Q”%G“:*>Nul| | Echo%G
如果您喜欢结果的相对路径,只需使用
Echo.\%G


若要获取有关
where
命令的详细信息,请打开一个窗口,然后输入以下命令,
where/?
,或者输入此
帮助where

是否可以扩展“空文件夹”的定义?您正在查找当前目录中不包含文件的子目录吗?或当前目录的子目录,其中不包含任何文件,也不包含任何目录?我只查找具有空文件夹(没有文件)的当前目录。难道不可能只看到文件夹大小为0 KB而不扫描每个文件夹吗?Vishwas,我已经更新了我的exiti