在试图找到检查目录中文件的方法时,我发现了这个:
>nul 2>nul dir /a-d /s "folderName\*" && (echo Files exist) || (echo No files found)
它运行良好,除了我真的需要能够只检查遵循特定命名约定的一半子目录。
无论如何要重新修改这一行只能检查" ToBeMoved"文件夹?
我试着这样写:
>nul 2>nul dir /a-d/b/s "\\SERVER\Path\*ToBeMoved" && (echo Files exist) || (echo No files found)
但它不起作用。我猜测是因为它在用户级别使用字符串" ToBeMoved"来查找文件夹。
答案 0 :(得分:1)
试一试。使用PUSHD命令更改您需要的根路径。
>
为我输出。
|
编辑: 只是为了告诉你我在一个名为 ToBeMoved 的文件夹中有一个文件,我从提示符下运行了dir cmd。我只放了一个文件进行测试。
!
答案 1 :(得分:1)
我相信您列出的第一个代码缺少/b
选项。假设它实际存在,那么原始代码列出了目录层次结构中每个文件的完整路径,但是您将输出定向为null,并根据是否找到文件有条件地采取操作。
您可以直接管道到FIND
,而不是重定向到null,从逻辑上查找包含*ToBeMoved\
的路径。该输出可以重定向到null,您可以根据FIND
返回代码有条件地执行操作。我会在寻找字符串时忽略大小写。
dir /b /a-d /s "folderName" 2>nul|find /i "ToBeMoved\" >nul && (echo Files exist) || (echo No files found)
您可以使用FINDSTR
代替,但必须转义反斜杠
dir /b /a-d /s "folderName" 2>nul|findstr /i "ToBeMoved\\" >nul && (echo Files exist) || (echo No files found)