对目录中的所有文件执行windows cmd命令

时间:2012-06-03 01:40:22

标签: windows powershell batch-file logparser

很简单,我想在目录中的每个文件上执行一个命令,一次一个,并记录该命令的输出。

我写了以下批处理脚本:

pushd C:\Program Files\Log Parser 2.2
for %%x in (C:\templogs\3\C\IISLogFiles\W3SVC3\deduped*.log) do (
   LogParser "SELECT * INTO weblog FROM %%~dpnx" -i:W3C -o:SQL -server:localhost -database:testdb -driver:"SQL Server" -createTable:OFF >> input.out   
)
popd

当我在命令提示符下执行它时,所有它都会复制粘贴这些命令。什么都没有执行。任何想法?

2 个答案:

答案 0 :(得分:0)

唯一的情况是:

dir C:\templogs\3\C\IISLogFiles\W3SVC3\deduped*.log

......会变回空白。请您仔细检查一下这条路径实际上是否包含您要处理的文件......?

我已经尝试了几种方法并且始终得到了预期的结果(LogParser在我的情况下无法识别),除非我尝试过在我的系统上不存在的路径......

答案 1 :(得分:0)

如何只执行LogParser:

LogParser "SELECT * INTO weblog FROM C:\templogs\3\C\IISLogFiles\W3SVC3\deduped*.log" -i:W3C -o:SQL -server:localhost -database:testdb -driver:"SQL Server" -createTable:OFF