【问题标题】:Running SQLCMD from bat file loops infinitely从 bat 文件中运行 SQLCMD 无限循环
【发布时间】:2016-07-01 21:38:58
【问题描述】:

我有以下连接到远程数据库的 SQLCMD 执行查询并将其保存为 csv 文件。

sqlcmd -S tcp:0.0.0.0,1433 -U user -P pass -d mydb -W -w 999 -s "," -Q "SELECT * FROM dbo.CSVData" -o "C:\wamp\sqlcmd.csv"

当我从命令提示符手动运行它时,它工作正常。

我需要从 php 运行 sqlcmd 命令,我已经在 php 中尝试了几个执行命令,但没有一个有效。唯一的选择是使用 .bat 文件并通过 php 调用它们,但是当我这样做时,sqlcmd 命令会连续运行(数百次)并退出。我曾尝试使用 /wait 并退出,但这会因为打开数百个命令提示符窗口而变得更糟,它会冻结系统。下面是我试过的代码。请让我知道我做错了什么。谢谢。

@echo off  

echo Running sqlcmd  
start /wait sqlcmd -S tcp:0.0.0.0,1433 -U user -P pass -d mydb -W -w 999 -s "," -Q "SELECT * FROM dbo.CSVData" -o "C:\wamp\sqlcmd.csv"


:exit

【问题讨论】:

  • 您是否尝试过从 cmd 提示符运行批处理文件?只是为了确保 PhP 代码没有循环?我看不出您列出的批处理文件如何导致循环。
  • 写入start "" /wait ...start 可能会将它遇到的第一个带引号的字符串解释为窗口标题,因此给一个空字符串"" 明确定义一个并避免分解命令行的问题)。 ..
  • 我没有从 PHP 运行 .bat 文件。我只是通过双击它来运行@Joe C

标签: php batch-file sqlcmd


【解决方案1】:

我发现了问题所在。我将 .bat 文件命名为 sqlcmd.bat,这导致程序无限运行。我重命名了 .bat 文件,它运行良好。一个愚蠢的错误。我的错。

【讨论】:

  • 我做了同样的事情......哈哈。感谢发帖!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-07
  • 1970-01-01
  • 2012-06-24
  • 2010-11-04
  • 1970-01-01
  • 1970-01-01
  • 2012-03-08
相关资源
最近更新 更多