【问题标题】:sqlcmd hangs in jscript but not vbscript via WSHsqlcmd 通过 WSH 挂在 jscript 但不是 vbscript
【发布时间】:2015-02-15 04:26:29
【问题描述】:

我有两个脚本,vbtest.vbs 和 jstest.js:

vbtest.vbs:

设置 sh = CreateObject("WScript.Shell")
WScript.echo(sh.exec("sqlcmd -S my-server\name -U user -P pass -Q ""exit(USE [schemaName];SELECT COUNT(*) as Count FROM [myView] where [myColumn] = 'mySearchString';)""").StdOut.ReadAll)

jstest.js:

var sh = new ActiveXObject("WScript.Shell");
WScript.Echo(sh.exec("sqlcmd -S my-server\name -U user -P pass -Q \"exit(USE [schemaName];SELECT COUNT(*) as Count FROM [myView] where [myColumn] = 'mySearchString';)\"").StdOut.ReadAll());

当我运行 vbtest 时,我得到了预期的输出。 当我运行 jstest 时,sqlcmd 的新命令窗口在几秒钟内没有任何内容挂起,然后我得到一个带有以下输出的 jscript 消息框:

HResult 0x35,级别 16,状态 1
命名管道提供程序:无法打开与 SQL Server [53] 的连接。

【问题讨论】:

    标签: vbscript jscript sqlcmd wsh


    【解决方案1】:

    JScript 字符串文字需要为 \ 转义:

    my-server\name
    

    =>

    my-server\\name
    

    【讨论】:

    • 谢谢,我不敢相信我错过了......特别是考虑到我逃脱了“。”。
    猜你喜欢
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 2011-07-26
    相关资源
    最近更新 更多