我有一个在交互式编辑器中运行良好的 Windows powershell 脚本。该脚本是一个简单的一行 sql cmd:
sqlcmd -S servername -d dbname -E -W -w 999 -s "," -Q "SELECT select col1,col2,'','','','','','','','','','','','','','','','','','','','','','','','','' From Table" -o "C:\sqlcmd.csv"
Run Code Online (Sandbox Code Playgroud)
当我在 powershell 命令提示符下输入它时,它工作正常。我将它保存在一个 ps1 文件中,并尝试通过键入 .\filename.ps1 从 cmd 提示符运行它,它在记事本中打开它,但不执行它。
然后我尝试将它作为这样的命令运行:
powershell sqlcmd -S servername -d dbname -E -W -w 999 -s "," -Q "SELECT select col1,col2,'','','','','','','','','','','','','','','','','','','','','','','','','' From Table" -o "C:\sqlcmd.csv"
Run Code Online (Sandbox Code Playgroud)
上面写着“-s 缺少参数...”。
关于让它正确运行的任何建议?我在某处阅读了一些关于 Windows 执行策略的内容,并想知道它是否是这样的。
操作系统为 Windows XP SP2。
小智 12
跑 regedit
HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell
Run Code Online (Sandbox Code Playgroud)
将(Default)属性值更改为0。
可能的值如下:
0 - 执行, Edit - 在 PowerShell ISE 中打开, Open - 在记事本中打开。 出于安全原因,Microsoft 将默认操作设置为Open.
您可以从命令提示符运行 Powershell 脚本,如下所示:
powershell -command "& .\filename.ps1"
Run Code Online (Sandbox Code Playgroud)
您可能需要更改执行策略才能运行 Powershell 脚本。
powershell -command "Set-ExecutionPolicy Unrestricted"
Run Code Online (Sandbox Code Playgroud)
我意识到这个问题已经回答了,但如果你真的想运行 .\filename.ps1,有一种方法可以做到。
第 1 部分:获取 PowerShell 位置
第 2 部分:设置 .ps1 文件关联
第 3 部分:从命令提示符运行 .\filename.ps1
.\文件名.ps1
-YP
| 归档时间: |
|
| 查看次数: |
24897 次 |
| 最近记录: |