gpt4 book ai didi

batch-file - 在批处理文件中使用 sqlcmd

转载 作者:行者123 更新时间:2023-12-04 02:54:02 24 4
gpt4 key购买 nike

我已经在 StackOverflow 上搜索了几个小时,并尝试了针对类似问题提出的不同建议,但到目前为止没有正确传递参数(双引号,^)。

这是它的简短版本:

@echo off
cd C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\
start /w "sqlcmd" sqlcmd.exe -S DBserverName -U username -P p@ssword -i C:\query.sql -s"," | findstr /V /C:"-" /B >c:\output.csv

基本上,我想传递一个包含定界符的相当长的参数。但我看到发生这种情况的唯一方法是使用参数。我想让它尽可能简单。这是唯一的办法吗?您能举例说明这是如何运作的吗?

提前致谢。

最佳答案

我不确定这是否重要,但我认为 -s"," 之间应该有一个空格

但更重要的是,您的管道结构是错误的。您的 sqlcmd 命令正在新窗口中运行,但您的管道正在寻找原始窗口中 START 命令本身的输出 - 但没有任何输出。

您可以通过转义管道和重定向来让您的命令工作。

@echo off
cd C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\
start /w "sqlcmd" sqlcmd.exe -S DBserverName -U username -P p@ssword -i "C:\query.sql" -s "," ^| findstr /V /C:"-" /B ^>"c:\output.csv"

但是根本不需要用START。你的脚本直接执行sqlcmd就可以了,一切就简单多了。

@echo off
cd C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\
sqlcmd.exe -S DBserverName -U username -P p@ssword -i "C:\query.sql" -s "," | findstr /V /C:"-" /B >"c:\output.csv"

您可能还会遇到密码问题,具体取决于使用的字符。您可能必须引用和/或转义密码,并且 sqlcmd.exe 可能有自己的转义规则。如果是,那么您可能不得不担心 cmd.exe 和 sqlcmd.exe 的转义问题。

关于batch-file - 在批处理文件中使用 sqlcmd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17008820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com