我正在尝试使用以下DOS语句来查找没有重要文件的第一级文件夹。

for /d %X in (M:\*) do if not exist important.txt echo %X

该语句运行,但是if部分无法正常运行,即使文件存在,也始终返回缺少的文件。 我究竟做错了什么?

#1楼 票数:0 已采纳

您正在测试文件在当前目录中的存在仅仅是因为您没有为文件夹名称加上前缀。 尝试for /d %X in (M:*) do if not exist %X\\important.txt echo %X
看看有什么变化。
另一个注意事项:您从M:上的当前目录扫描目录。 这可能是M:\\或其他目录。

#2楼 票数:0

以下对我有用:

for /d %%X in (c:\tmp\*) do if not exist %%X\important.txt echo %%X 

请注意批处理文件中FOR所必需的双%%

  ask by Jack Ngai translate from so

未解决问题?本站智能推荐:

1回复

如何使用DOS批处理文件创建要传递给可执行文件的文件列表?

我想获取目录中所有.dll和.exe的(用分号分隔)列表作为变量,以作为参数传递给可执行文件。 我已经尝试了一些方法,但是它从未按预期运行。 我已经找到了一部分-以下内容打印出了我想要的文件列表: ......但下一步不太正确,我正在努力解决我的错误: 如果可以在这里解决问题
1回复

如何使用批处理文件中的条件语句打破for循环?

我正在处理大量文件,我想将我的工作限制在找到的前9个文件中。 我已经在批处理文件中尝试过此方法,但它不起作用。 它会处理所有文件,并且不会在第9个文件处停止。 我做错了什么?
1回复

如何查找文件并通过DOS执行?

标题几乎是不言自明的,我的示例很明显,但是我试图找到一个特定的exe文件并执行它。 为了安全起见,请让我知道是否可以仅运行找到的第一个文件或查找特定的哈希字符串或文件大小。 谢谢 !
1回复

在批处理文件中,如果满足一个条件而不是周围的 for 循环,如何打破嵌套的 if 语句?

这是我所拥有的... 目标是在只有其中一个满足的情况下打破所有这些 if 语句,然后从最外层的 for 循环重新开始。 这可能吗? 如果是这样,那到底是怎么做到的? 提前致谢。
3回复

if循环中的语句(MS Batch)

我在制作以下脚本时遇到了一些麻烦: 该脚本应该从文件equipment.ini读取并将值保存在2个不同的变量中,每次重复for循环时都会切换。 %es.1%将包含武器的名称,而%ei.1%将包含它的ID等等。 for和if循环看起来像它们应该的那样工作,但回显值不会。 因为我知
1回复

DOS-试图了解定界符以查找行数最少的inf文件

我在正在编写的bat文件中发现了一个错误,无意中找到了一个修复程序,但是我不明白该修复程序为什么起作用。.最终这是我的问题,或者这种逻辑是否还有其他问题我没有发现。 该脚本会在2个或更多文件中进行行计数,然后目标是找到行计数最低的文件,然后稍后在脚本中的变量中将该计数用作参数。 示例
1回复

在for循环中获取dos批处理文件中的文件路径

我正在尝试创建一个批处理文件,该文件将进入目录并查找日志文件,然后搜索日志文件以查看单词“ ERROR:”是否在行首。 我已经弄清楚了那部分。 我现在的问题是尝试创建一个显示行,以显示* .log之后的目录。 例如 --- c:\\ temp * .log -----------
2回复

循环并从文件dos中解析字符串的一部分

我正在尝试使用DOS命令从命令行的一行中解析一个单词 如果字符串包含_(“,那么我要将其存储在文件中。例如: 如果没有,那么我想忽略它。 我很难弄清楚delim是如何工作的,或者我什至不应该使用它。 我看到了很多关于输出整行而不是字符串的示例。 或...我想我可以遍历