运行批处理文件为何无效
本帖最后由 dnvplj 于 2018-1-14 09:19 编辑下面的代码是卸载IE11,把他保存为:bat.bat文件后,用鼠标双击该文件后能卸载IE11。
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我的问题是:用“RunWait(@ScriptDir & '\bat.bat', ' ', @SW_HIDE)”卸载不了IE11。 回复 1# dnvplj
轉一下運行 A.BAT再由 A.BAT CALLBAT.BAT 回复 2# kk_lee69
试下,不行,见下图。
编译后试试行否? 回复 4# kkkpep
编译后也不行,不知是什么原因? 是不是没有管理员权限运行加个看看? 回复 6# 229989799
最上头加上了“#Requireadmin”,编辑后运行,还是不行。 试下这样
RunWait(@ComSpec & " /c " & @ScriptDir & "\bat.bat") 回复 8# kachiko
刚试下,不行。谢谢你的回复。 回复 9# dnvplj
报错存储空间不足是什么情况?直接执行bat会这样吗?可以把bat放到其他盘试试哦 回复 10# kachiko
直接运行没问题,但我想通过AU3运行他。提示“储空间不足”不知是什么原回,我的C盘是30G的,WIN7x64系统。 我直接Run("a.bat"),没有任何问题,你自己试试 本帖最后由 vuivui 于 2018-1-18 12:59 编辑
你犯了三个错误:
一、“.bat”文件是系统默认的可执行文件,跟exe文件一样直接运行即可。
二、@ScriptDir是目录路径,未包括可执行文件。
三、@ScriptDir是脚本的目录路径,即使加上脚本文件名改为@ScriptFullPath,也是不行的,au3脚本文件不是可执行文件,au3可执行文件目录加文件名应为@AutoItExe,他只能执行au3命令行。
正确方式是:
Run("d:\1.bat")
当然,“.bat”本身就是通过cmd执行的,也可以这样:
Run("cmd /c d:\1.bat")
请参考:
调用cmd(dos)命令详解
http://www.autoit3.cn/thread-9838-1-1.html 其实,直接执行FORFILES,后面的内容作为参数加上就行了。
比如:
ShellExecute("FORFILES", "/P ..........")
运行批处理文件也可以这样:
ShellExecute("cmd", "/c d:\jb\1.bat") 14楼所说的意思就是可以不用批处理文件。
页:
[1]
2