找回密码
 加入
搜索
查看: 3807|回复: 6

[AU3基础] 请教脚本在编辑器里运行和编译成EXE之后再运行有什么区别?

  [复制链接]
发表于 2014-2-7 00:47:04 | 显示全部楼层 |阅读模式
请教脚本在编辑器里运行和编译成EXE之后再运行有什么区别?因为我发现,我下面的代码在编辑器里运行,SQLCMD窗口会一闪而过,不会卡死。而编译成EXE文件(或者双击AU3文件)之后运行,则会卡死在SQLCMD窗口。弄了一个晚上都不明白这是为什么?谢谢!
#include <Constants.au3>
$GUICtrlRead2 = "123456"
$foom = Run(@ComSpec & " /c (for /f ""tokens=*"" %i in ('sqlcmd -U sa -P " & $GUICtrlRead2 & " ^| find ""登录失败""') do @echo %i) ", @SystemDir, @SW_SHOW, $STDERR_CHILD + $STDOUT_CHILD)
ProcessWaitClose($foom)
$Textm = StdoutRead($foom)
If StringInStr($Textm, "登录失败") Then
        MsgBox(16, "密码错误", "SQL Server数据库sa账户密码错误,请检查后重新输入!", "")
Else
    MsgBox(16, "密码错误", "SQL Server数据库sa账户密码正确!", "")
EndIf
发表于 2014-2-7 05:56:57 | 显示全部楼层
用runwait试一下
发表于 2014-2-7 08:28:30 | 显示全部楼层
回复 1# smooth


    还没解决?
加个延时,然后强行关闭cmd是否可以呢
 楼主| 发表于 2014-2-7 09:42:57 | 显示全部楼层
回复 2# h20040606
编译成EXE后运行,代码会卡在run那里,改什么都没有用。可是在编辑器里运行,就没有问题,我奇怪的是这个。
 楼主| 发表于 2014-2-7 09:43:57 | 显示全部楼层
回复 3# hnfeng
我一开始也是这么想的,可是代码卡在run那里,无法往下执行,谁去结束cmd呢?
发表于 2014-2-7 11:43:48 | 显示全部楼层
貌似在 SciTE 中程序会自动关闭cmd,我试着添加 pause 居然也能关闭。编译后就不会自己关闭了。
所以要加个延时,超过延时就强行关闭

代码在另一个帖子给你了。
 楼主| 发表于 2014-2-7 12:34:26 | 显示全部楼层
回复 6# hnfeng

你的测试环境和我的不一样,现在不是退不出cmd的问题,而是进入了sqlcmd.exe(微软数据库的脚本工具,类似cmd.exe。),或者Oracle数据的sqlplus.exe环境,而导致代码根本就无法再往下执行(如果是在SciTE中就可以,不知道为什么?)。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 22:00 , Processed in 0.073340 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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