vuivui 发表于 2018-1-18 13:23:13

别外要注意,你的提供的命令行中含有双引号,所以要么把参数中的内容改为单引号,要么参数外面用单引号,比如:
ShellExecute("FORFILES", '/P ..........')
多重双引号嵌套的,里面一层要用两个双引号来代替一个双引号。

zpmc123 发表于 2018-1-18 13:28:11

本帖最后由 zpmc123 于 2018-1-18 13:29 编辑

回复 1# dnvplj RunWait(@ComSpec & ' /c ' & 'FORFILES /P %WINDIR%\servicing\Packages /M Microsoft-Windows-InternetExplorer-*11.*.mum /c "cmd /c echo Uninstalling package @fname && start /w pkgmgr /up:@fname /quiet /norestart', '', @SW_HIDE)小龙工具转的,试试看行不行!

vuivui 发表于 2018-1-18 13:38:00

如果用run就是这样:
Run('FORFILES /P ..........')
与Run('cmd /c ..........')一个道理

dnvplj 发表于 2018-1-18 16:31:11

回复 17# zpmc123

我注意到了引号问题,现在有时候卸载能成功,有时不行。也和关不关防火墙没什么关系。

dnvplj 发表于 2018-1-18 16:37:34

回复 16# vuivui
我提供的代码是网上找的,把该代码保存为BAT.BAT,直接运行没问题,就是用AU3调用“bat.bat”文件时不起作用,如“RunWait(@ScriptDir & '\bat.bat', ' ', @SW_HIDE)”。

vuivui 发表于 2018-1-19 12:42:04

回复 20# dnvplj


直接运行和au3调用“bat.bat”文件是同一个,也就是同一位置的谢话,你在批处理文件上加上一行:
pause
也就是暂停后,你看看正常运行的时候工作目录是什么?然后在run命令中把该目录加为第二个参数,比如:
RunWait(@ScriptDir & '\bat.bat', ' ')
注意把@SW_HIDE去掉,否则无法看到cmd运行信息。

你把两者信息显示对比一下,就能知道问题所在了。注意查看一下工作目录,au3调用批处理最容易出现的问题就是工作目录不正确,如果工作目录一致的话,效果应该是一样的。
页: 1 [2]
查看完整版本: 运行批处理文件为何无效