2014-09-23 72 views
1

我读过大概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

以上是为了搏出任意32位字机8664机(64)根据文件从VS命令提示符下运行。

我也试过以下没有区别。

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

可能重复[如何使用批处理脚本对目录中的每个文件执行某些操作](http://stackoverflow.com/questions/180741/how-to-do-something-to-each-file-in -a-directory-with-a-batch-script) – 2014-09-23 18:50:55

+0

和有什么问题?该脚本不起作用?或者你有独特的64b和32b机器? – npocmaka 2014-09-23 18:59:01

+0

我已添加/ f“usebackq delims = |”每个可能的重复,没有变化。我的问题是我不能从dumpbin命令的任何输出到我的TXT输出。它输出命令txt,它不运行命令。 – KHibma 2014-09-23 19:01:56

回答

1

终于找到了正确的组合。

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

8664机(64)

8664机(64)

.....

在 “程序文件” 的空间可能已造成问题,或者它可能是“dir \ b path”限定符。如果您拥有适当的权限,则通过c $通过UNC进行的访问可以正常工作。

+0

不是空格,而是右括号......如果你用“^”来转义括号,它应该可以工作,但是当我看到你的自我答案时它会打我。 – npocmaka 2014-09-23 19:55:40