【已解决】}有关AUTOIT调用BAT的问题,请大神看一下问题出在哪了,求解决
本帖最后由 opk775852123 于 2017-2-19 17:22 编辑本人小白一枚,想写个au3调用BAT的程序,BAT是现成的,并且可以正常运行,但是经au3调用就不行,下面是截图及代码。
下边是BAT的代码@Echo off&title wkdxz
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE
\Wow6432Node\Microsoft\windows\CurrentVersion\Uninstall
\2345Explorer') do (
echo %%a|findstr /i "UninstallString" >nul&&for /f "tokens=1,*
delims=:" %%b in ("%%a") do (
set "a=%%b"
set "b=%%c"
if exist "!a:~-1!:!b!" echo 正在启动卸载程序&start "" "!a:~-1!:!b!"
))
exit bat转换AU3代码如下:RunWait(@ComSpec & ' /c ' & '@Echo off&title wkdxz ', '', @SW_HIDE)
RunWait(@ComSpec & ' /c ' & 'setlocal enabledelayedexpansion', '', @SW_HIDE)
RunWait(@ComSpec & ' /c ' & 'for /f "delims=" %a in (' & "'" & _
'reg query HKEY_LOCAL_MACHINE\SOFTWARE', '', @SW_HIDE)
RunWait(@ComSpec & ' /c ' & '\Wow6432Node\Microsoft\windows\CurrentVersion\Uninstall', '', @SW_HIDE)
RunWait(@ComSpec & ' /c ' & '\2345Explorer' & "'" & _
') do (', '', @SW_HIDE)
RunWait(@ComSpec & ' /c ' & 'echo %a|findstr /i "UninstallString" >nul&&for /f "tokens=1,* ', '', @SW_HIDE)
RunWait(@ComSpec & ' /c ' & 'delims=:" %b in ("%a") do (', '', @SW_HIDE)
RunWait(@ComSpec & ' /c ' & 'set "a=%b"', '', @SW_HIDE)
RunWait(@ComSpec & ' /c ' & 'set "b=%c"', '', @SW_HIDE)
RunWait(@ComSpec & ' /c ' & 'if exist "!a:~-1!:!b!" echo 正在启动卸载程序&start "" "!a:~-1!:!b!"', '', @SW_HIDE)
RunWait(@ComSpec & ' /c ' & '))', '', @SW_HIDE)
RunWait(@ComSpec & ' /c ' & 'exit', '', @SW_HIDE)
如果要运行bat,最好用 ShellExecute("date\1.bat") 试下:
Run(@ComSpec & ' /c dir>E:\1.BAT',"", @SW_HIDE) 回复 2# 229989799
谢谢大神帮忙,可是这段代码要怎样用呢?为什么我直接复制到工程里点击运行没有任何反应呢?是还需要加什么东西吗?
回复 5# opk775852123
他的转换完全没有理解批处理代码的内容,是完全错误的。
用ShellExecute,并且要确定批处理文件在程序目录下。 地址有问题吧 本帖最后由 opk775852123 于 2017-2-16 14:04 编辑
回复 6# 帆船
用ShellExecute也不行呢
是不是需要加什么参数呢?
我就是不理解为什么会弹出find in files这个窗口
如果单独运行BAT的话就不会弹出
只要用AUT3调用就会弹,不管是在同级目录还是下级目录 卸载2345浏览器为什么不直接调用它的“卸载“程序而使用批处理来卸载?? 回复 9# 229989799
因为有时候客户的2345的浏览器不一定会安装在默认目录,所以才采用此方法 回复 10# opk775852123
如果 批处理 能卸载,就直接批处理编译成exe吧。不用费脑处理。 回复 11# 229989799
关键是把BAT文件编译成EXE的也不行一样会弹出find in files这个窗口。。。。。 修改批处理,第二行增加
cd %~dp0 回复 13# 1361739590
请问是加在第二行哪里呢
setlocalenabledelayedexpansion cd %~dp0
cd %~dp0 setlocalenabledelayedexpansion
setlocal cd %~dp0enabledelayedexpansion
麻烦大神写一下可以吗?
能用的话小弟感激不尽 回复 14# opk775852123
应该是另起一行为cd %~dp0吧?
页:
[1]
2