【问题标题】:Batch file to loop over files and run a command批处理文件以循环文件并运行命令
【发布时间】:2014-09-23 18:48:53
【问题描述】:

我已经阅读了大概 20 篇文章,并试图将一个答案混合在一起,但它并没有组合在一起。 我需要遍历目录中的一组文件,在运行时对它们运行命令,并记录输出。 (理想情况下,对命令输出进行文本比较会很好,但我可以通读日志。) 问题:以下命令不会将结果输出到 txt 文件。它将“dumpbin /HEADERS....”输出到 txt 中。命令本身没有运行。

for %%f in ('dir /b "\\machine\c$\Program Files (x86)\software\bin64\*"') do (dumpbin /HEADERS %%f | find "machine")

那我就跑look.bat >>foo.txt

上述内容是为了在从 VS 命令提示符运行时根据文件抽出 32 位字机8664 机 (x64)

我也尝试了以下没有任何区别。

for /f "usebackq delims=|" %%f in ('dir /b "\\machine\c$\Program Files (x86)\software\bin64\*"') do (dumpbin /HEADERS %%f | find "machine")

【问题讨论】:

  • 有什么问题?脚本不工作?或者你有不同的 64b 和 32b 机器?
  • 我添加了 /f "usebackq delims=|"根据可能的重复,没有变化。我的问题是我无法将 dumpbin 命令的任何输出放入我的 txt 输出中。它输出命令txt,它不运行命令。
  • aa 是的,您需要 /f "usebackq tokens=* delims="。尝试将 `\\qaloan010\c$` 映射为驱动器号。不确定 dir 命令是否会访问这样的路径。
  • 您需要将 unc 路径映射到驱动器号。

标签: file loops batch-file command


【解决方案1】:

终于找到合适的组合了。

for /f %%f in ("\\qaloan010\c$\temp\bin64\*.*") do dumpbin /HEADERS %%f | find "machine">>output.TXT

8664 机器 (x64)

8664 机器 (x64)

.....

“程序文件”中的空格可能导致问题,或者可能是“dir \b 路径”限定符。如果您具有适当的权限,则通过 c$ 访问 UNC 可以正常工作。

【讨论】:

  • 不是空格,而是右括号...如果您用“^”转义括号,它应该可以工作。但是当我看到您的自我回答时,它击中了我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-29
  • 2017-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-21
  • 1970-01-01
相关资源
最近更新 更多