找回密码
 加入
搜索
楼主: dnvplj

[AU3基础] 运行批处理文件为何无效

 火..   [复制链接]
发表于 2018-1-18 13:23:13 | 显示全部楼层
别外要注意,你的提供的命令行中含有双引号,所以要么把参数中的内容改为单引号,要么参数外面用单引号,比如:
ShellExecute("FORFILES", '/P ..........')
多重双引号嵌套的,里面一层要用两个双引号来代替一个双引号。
发表于 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)
小龙工具转的,试试看行不行!
发表于 2018-1-18 13:38:00 | 显示全部楼层
如果用run就是这样:
Run('FORFILES /P ..........')
与Run('cmd /c ..........')一个道理
 楼主| 发表于 2018-1-18 16:31:11 | 显示全部楼层
回复 17# zpmc123

我注意到了引号问题,现在有时候卸载能成功,有时不行。也和关不关防火墙没什么关系。
 楼主| 发表于 2018-1-18 16:37:34 | 显示全部楼层
回复 16# vuivui
我提供的代码是网上找的,把该代码保存为BAT.BAT,直接运行没问题,就是用AU3调用“bat.bat”文件时不起作用,如“RunWait(@ScriptDir & '\bat.bat', ' ', @SW_HIDE)”。
发表于 2018-1-19 12:42:04 | 显示全部楼层
回复 20# dnvplj


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

你把两者信息显示对比一下,就能知道问题所在了。注意查看一下工作目录,au3调用批处理最容易出现的问题就是工作目录不正确,如果工作目录一致的话,效果应该是一样的。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-25 18:58 , Processed in 0.067125 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表