Batch file 批处理-为什么找不到成功的dir语句打印文件?

Batch file 批处理-为什么找不到成功的dir语句打印文件?,batch-file,command-line,Batch File,Command Line,最近,我制作了一个小批量文件来列出给定目录中的所有文件。当我运行该文件时,它成功地生成了所有文件的txt。但是,如果从命令提示符下运行它,它还会打印未找到的文件 dir ".\builds\dev-versions" /b /o:d *.jar > devFiles.txt 发生这种情况的原因是什么?您的dir命令应该运行两次-对于“\builds\dev versions”和*.jar 表示“当前目录”,因此它应该列出指定目录和当前目录中的所有.jar文件。如果其中一个列表为空,您将得

最近,我制作了一个小批量文件来列出给定目录中的所有文件。当我运行该文件时,它成功地生成了所有文件的txt。但是,如果从命令提示符下运行它,它还会打印
未找到的文件

dir ".\builds\dev-versions" /b /o:d *.jar > devFiles.txt

发生这种情况的原因是什么?

您的
dir
命令应该运行两次-对于
“\builds\dev versions”
*.jar

表示“当前目录”,因此它应该列出指定目录和当前目录中的所有
.jar
文件。如果其中一个列表为空,您将得到
文件,也找不到
错误


因为您没有告诉我们代码试图做什么,所以我们只能建议补救措施。追加
2>nul
可能有助于丢弃错误报告。

起始目录不同。始终使用完整路径我从来没有想到过像这样分割文件路径和文件名。看起来您想运行
dir.\builds\dev versions\*.jar”/b/o:d>devFiles.txt
或稍短一点的
dir“builds\dev versions\*.jar”/b/o:d>devFiles.txt
以获取按上次修改日期排序的当前目录的子目录
builds\dev versions
中所有*.jar文件的列表。但是您运行DIR来获取子目录
builds\dev versions
中所有文件的列表,以及当前目录中所有
*.jar
文件的列表。在当前目录中搜索*.jar文件失败。在命令提示符窗口中运行
dir/?
以获取此命令的帮助。我不知道需要将通配符
*jar
放入文件路径,尽管我认为这是有意义的。谢谢