我制作了一些命令行代码(功能?我不知道技术术语,我很抱歉),目的是在网络文件夹(及其所有子文件夹)中查找,并仅列出这些文件的文件路径。特定类型。我尝试先在包含较少信息的文件夹上对其进行测试,但是出现错误File Not Found
。这让我感到困惑,因为我查看了文件夹-在指定的文件夹中肯定有.VOB和.mp4文件。
当我运行下面包含的代码时,我没有收到错误,但是我得到了一堆我不想要的文件(.pdf .xml .jpeg--等),我认为是因为它们系统文件,例如.avi缩略图的.jpeg文件。
dir "\\nas-rb4b\projectx2" /s /b *.avi *.mov *.mp4 *.wmv *.mpg *.lnk *.ldb *.rar *.mpeg *.m4v *.vob *.zip>Projx2RERUN.txt
有人可以帮助我理解为什么在尝试运行完全相同的代码但使用其他更具体的文件夹时出现File Not Found
错误的原因吗?
我也不知道如何修改代码/功能以排除不是列出的文件类型也不是系统文件夹的文件。一如既往,我们非常感谢您的帮助!
答案 0 :(得分:2)
读取dir
command reference中最新的Windows Commands:
dir [<Drive>:][<Path>][<FileName>] [...] [/p] [/q] [/w] [/d] [/a[[:]<Attributes>]][/o[[:]<SortOrder>]] [/t[[:]<TimeField>]] [/s] [/b] [/l] [/n] [/x] [/c] [/4]
要使用多个
FileName
参数,请使用逗号分隔每个文件名 空格,逗号或分号。
有问题的命令dir "\\nas-rb4b\projectx2" /s /b *.avi *.mov *.mp4
(被截断)说并执行以下操作:
dir "\\nas-rb4b\projectx2" /s /b
(即"\\nas-rb4b\projectx2"
中的所有文件),然后dir /s /b *.avi
(即当前目录中的所有.avi
文件),然后dir /s /b *.mov
(即当前目录中的所有.mov
文件),然后dir /s /b *.mp4
(即当前目录中的所有.mp4
个文件),... pushd "\\nas-rb4b\projectx2"
dir /s /b *.avi *.mov *.mp4 *.wmv *.mpg *.lnk *.ldb *.rar *.mpeg *.m4v *.vob *.zip>Projx2RERUN.txt
popd
答案 1 :(得分:1)
根据Ken White的一些建议以及here,here给出的答案以及here的信息,我做出了下面的表达式,最终对我有用
dir /b /s \\nas-rb4b\projectx2\*.avi \\nas-rb4b\projectx2\*.mov \\nas-rb4b\projectx2\*.mp4 \\nas-rb4b\projectx2\*.wmv \\nas-rb4b\projectx2\*.mpg \\nas-rb4b\projectx2\*.rar \\nas-rb4b\projectx2\*.mpeg \\nas-rb4b\projectx2\*.m4v \\nas-rb4b\projectx2\*.vob \\nas-rb4b\projectx2\*.zip
这不是很漂亮,但是它允许我仅使用一个表达式来搜索多种文件类型,并将它们的路径全部发送到一个txt文件,而不必分别搜索每个文件扩展名。
到目前为止,它已按预期工作。