请教脚本在编辑器里运行和编译成EXE之后再运行有什么区别?
请教脚本在编辑器里运行和编译成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
用runwait试一下 回复 1# smooth
还没解决?
加个延时,然后强行关闭cmd是否可以呢 回复 2# h20040606
编译成EXE后运行,代码会卡在run那里,改什么都没有用。可是在编辑器里运行,就没有问题,我奇怪的是这个。 回复 3# hnfeng
我一开始也是这么想的,可是代码卡在run那里,无法往下执行,谁去结束cmd呢? 貌似在 SciTE 中程序会自动关闭cmd,我试着添加 pause 居然也能关闭。编译后就不会自己关闭了。
所以要加个延时,超过延时就强行关闭
代码在另一个帖子给你了。 回复 6# hnfeng
你的测试环境和我的不一样,现在不是退不出cmd的问题,而是进入了sqlcmd.exe(微软数据库的脚本工具,类似cmd.exe。),或者Oracle数据的sqlplus.exe环境,而导致代码根本就无法再往下执行(如果是在SciTE中就可以,不知道为什么?)。
页:
[1]