找回密码
 加入
搜索
查看: 7442|回复: 15

[AU3基础] 【已解决】}有关AUTOIT调用BAT的问题,请大神看一下问题出在哪了,求解决

 火.. [复制链接]
发表于 2017-2-16 09:19:56 | 显示全部楼层 |阅读模式
本帖最后由 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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-2-16 09:42:57 | 显示全部楼层
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)
发表于 2017-2-16 09:44:30 | 显示全部楼层
如果要运行bat,最好用 ShellExecute("date\1.bat")
发表于 2017-2-16 11:27:43 | 显示全部楼层
试下:
Run(@ComSpec & ' /c dir>E:\1.BAT',"", @SW_HIDE)
 楼主| 发表于 2017-2-16 12:09:07 | 显示全部楼层
回复 2# 229989799
谢谢大神帮忙,可是这段代码要怎样用呢?为什么我直接复制到工程里点击运行没有任何反应呢?是还需要加什么东西吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-2-16 13:13:15 | 显示全部楼层
回复 5# opk775852123
他的转换完全没有理解批处理代码的内容,是完全错误的。
用ShellExecute,并且要确定批处理文件在程序目录下。
发表于 2017-2-16 13:18:04 | 显示全部楼层
地址有问题吧
 楼主| 发表于 2017-2-16 14:01:42 | 显示全部楼层
本帖最后由 opk775852123 于 2017-2-16 14:04 编辑

回复 6# 帆船
用ShellExecute也不行呢

是不是需要加什么参数呢?

我就是不理解为什么会弹出find in files这个窗口
如果单独运行BAT的话就不会弹出
只要用AUT3调用就会弹,不管是在同级目录还是下级目录

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-2-16 14:33:52 | 显示全部楼层
卸载2345浏览器为什么不直接调用它的“卸载“程序而使用批处理来卸载??
 楼主| 发表于 2017-2-16 15:30:49 | 显示全部楼层
回复 9# 229989799
因为有时候客户的2345的浏览器不一定会安装在默认目录,所以才采用此方法
发表于 2017-2-16 15:33:09 | 显示全部楼层
回复 10# opk775852123


   如果 批处理 能卸载,就直接批处理编译成exe吧。不用费脑处理。
 楼主| 发表于 2017-2-16 15:46:36 | 显示全部楼层
回复 11# 229989799
关键是把BAT文件编译成EXE的也不行一样会弹出find in files这个窗口。。。。。
发表于 2017-2-17 09:14:57 | 显示全部楼层
修改批处理,第二行增加
cd %~dp0
 楼主| 发表于 2017-2-17 22:17:10 | 显示全部楼层
回复 13# 1361739590
请问是加在第二行哪里呢
setlocal  enabledelayedexpansion cd %~dp0
cd %~dp0 setlocal  enabledelayedexpansion
setlocal cd %~dp0  enabledelayedexpansion
麻烦大神写一下可以吗?
能用的话小弟感激不尽
发表于 2017-2-18 11:59:58 | 显示全部楼层
回复 14# opk775852123
应该是另起一行为
cd %~dp0
吧?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-24 12:18 , Processed in 0.089089 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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