【问题标题】:Running PowerShell Script from shortcut with spaces in path从路径中带有空格的快捷方式运行 PowerShell 脚本
【发布时间】:2021-08-25 15:54:41
【问题描述】:

我们的一个用户需要从快捷方式调用 PowerShell 脚本,因为使用命令行可能超出了他们的能力范围。脚本的路径包含空格,我一直无法成功地让脚本从快捷方式运行。快捷方式的目标是:

powershell.exe -file "C:\Users\xxxxx\xxxx xxxx\Finance - Documents\Secure\xxx (Finance Officer)\Rent\Data File Loader - XXXXX\InvokeDataLoader.ps1"

(我已经用 x 替换了人和公司的名字)

单击快捷方式只是短暂地打开一个 cmd 窗口(我认为),所以我一直在尝试通过在 cmd.exe 中运行命令来诊断问题。但是,当我尝试这样做时,我收到一条错误消息,指出它找不到路径“C:\Users\xxxxx\xxxx”,即它正在第一个空格上分割路径。用单引号或双引号将路径括起来不会改变这一点,如果我尝试用反引号转义空格,我会收到一条消息,指出路径不存在。

【问题讨论】:

  • 如果这是在\User 目录下,您的帐户是否有权限?你从DIR "C:\Users\xxxx\xxx xxx....ps1" 得到什么?你从powershell.exe -NoLogo -NoProfile -Command "Get-ChildItem 'C:\Users\xxxx\xxx xxx....ps1'"得到什么?
  • 我使用过许多使用快捷方式运行的 PowerShell 脚本,(在没有执行策略限制的情况下运行),它们看起来非常相似,并且不受空格或括号的影响。 %SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -ExecutionPolicy RemoteSigned -File "%UserProfile%\xxxx xxxx\Finance - Documents\Secure\xxx (Finance Officer)\Rent\Data File Loader - XXXXX\InvokeDataLoader.ps1" 非常好。你确定他们的执行政策不是问题吗?
  • 假设脚本路径正确,您的命令应该如图所示(-Filedouble 引用路径的组合),即使路径包含空格。您可以在-File 之前添加-NoExit 以保持控制台窗口打开,这有助于故障排除。
  • @mklement0 我似乎仍然遇到双引号问题,但感谢 -NoExit 提示
  • @thistledown,它与引号没有任何关系,所有的响应,包括我的使用它们。唯一的区别是我使用了 PowerShell 可执行文件的完整路径,要求 PowerShell 不要加载配置文件,(这可能不是您需要的,取决于您的脚本所做的),我使用了非默认执行策略。我的建议是确定哪个是您的问题,是消除其中的每一个差异,一次一个,直到您的问题再次出现。

标签: powershell cmd shortcut


【解决方案1】:

您实际上不需要更改 PowerShell 脚本本身来执行此操作。制作快捷方式时,只需将目标设置为:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe "C:\Users\xxxxx\xxxx xxxx\Finance - Documents\Secure\xxx (Finance Officer)\Rent\Data File Loader - XXXXX\InvokeDataLoader.ps1"

【讨论】:

    猜你喜欢
    • 2014-04-24
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    • 2015-07-15
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    相关资源
    最近更新 更多