【问题标题】:How to pass variable to bcp command within powershell script如何在powershell脚本中将变量传递给bcp命令
【发布时间】:2012-02-02 23:23:24
【问题描述】:

我正在创建一个我想从 PowerShell 脚本中传递给 bcp 命令的字符串。这是创建字符串的代码

$fullFilePath = (pwd).path + "\$db.$table" + ".dat"
$copyExecString = "bcp $db.$table out $fullFilePath -E -N -Slocalhost"

我可以将它的 Write-host 结果粘贴到命令提示符中,它运行得很好,但它不会按如下方式工作:

$fullFilePath = (pwd).path + "\$db.$table" + ".dat"
$copyExecString = "$db.$table out $fullFilePath -E -N -Slocalhost"
bcp $copyExecString

我也尝试在调用 bcp 命令之前使用 & 字符,但无济于事

任何关于如何实现此功能的想法将不胜感激

【问题讨论】:

    标签: sql-server powershell bcp


    【解决方案1】:

    不是单个字符串,而是通过用空格分隔参数来标记它:

    & bcp $db.$table out $fullFilePath -E -N -Slocalhost
    

    【讨论】:

    • 这也有效!非常感谢你。 PowerShell 脚本对我来说是非常新的,但在使用 ti 几天后我就可以看到它有多么有用
    • @TechDawg270 很高兴这有帮助。您需要小心Invoke-Expression,因为它可能会执行您没有预料到的事情。查看this Powershell team blog post 的相关信息。如果可以的话,你想避免它。如果您发现这回答了您的问题,请将其标记为已接受的答案。
    【解决方案2】:

    您可以使用Invoke-Expression cmdlet 确保在执行之前解析您想要执行的内容:

    Invoke-Expression "bcp $copyExecString"
    

    【讨论】:

      猜你喜欢
      • 2013-05-01
      • 2012-11-07
      • 1970-01-01
      • 2012-10-21
      • 1970-01-01
      • 2011-02-03
      • 1970-01-01
      • 2018-01-11
      • 2021-08-14
      相关资源
      最近更新 更多