我使用DIR命令在搜索排除多个文件的论坛。但没有找到我真正需要的。有些甚至使用PHP或VBS,真的不知道它们是如何工作的。使用DIR命令排除多个文件夹
我想要做的是*目录所有配置文件夹,也不包括某些默认文件夹,这是显示该计算机上的配置文件的数量和数量的一部分。
我会多解释一下,因为我可能不完全了解我的需求。
如果我使用DIR没有findstr。
DIR /A:d /B "F:\Documents and Settings"
输出:
Administrator
All Users
Default User
LocalService
userprofile1
NetworkService
userprofile2
...
userprofileN
但我的实际需求是:
userprofile1
userprofile2
...
userprofileN
我也拿到了这么远跟我的脚本了。
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
IF ERRORLEVEL 1 ECHO Your OS does not support enable extensions
DIR /A:d /B "F:\Documents and Settings" | findstr /v "Admin" | findstr /v "Default" | findstr /v "LocalService" | findstr /v "NetworkService"
EXIT
我的上面的脚本实际上工作,但是是固定的,可能不是很好编码。 我会问有没有可能使用对于循环来缩短多长的findstr管道并设置一个包含要排除的文件夹名称的变量? 我倾向于使用变量而不是包含要排除的文件夹的文本文件。
我想出了下面却复制了输出中:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
IF ERRORLEVEL 1 ECHO Your OS does not support enable extensions
SET xUser="Admin" "Default" "hi_I_will_be_future_added"
FOR %%A IN (!Xuser!) DO (
DIR /A:d /B "F:\Documents and Settings" | findstr /v %%A
)
谢谢你对这个伟大的论坛,并为所有可能帮助了我和其他人。
+1
'DIR/A:d/B“F:\ Documents and Settings \ userprofile *”'? –
+0
我对userprofile1-N感到抱歉,它只是一个虚拟名称。如果所有的用户都是这样命名的,那么你的脚本可能真的有效。不管怎样,谢谢。 –
+0
哎呀!当我阅读描述时,我非常可视!例如,'DIR'命令显示用户配置文件的完整路径,但您说“我的实际需求是:”并显示_just profiles_因此,是否要删除路径? '';-)。看到我的答案在下面... –