![](/img/trans.png)
[英]Why does command work in Windows CMD and not PowerShell?
[英]Powershell command does not work when inputed into CMD
我试图从 CMD(控制面板中的时间和日期)开始一个快捷方式,但它不起作用,所以我尝试在 Powershell 中做同样的事情。
在 Powershell 中,我编写了这个命令,它第一次尝试就起作用了。
cd 'C:\Users\JakubLL\Desktop\Zástupci!' ; start '.\Datum a čas – zástupce.lnk'
但由于某种原因,如果我尝试在 CMD 中运行完全相同的命令,情况并非如此。
当我尝试这个命令时:
powershell -command "& {cd 'C:\Users\JakubLL\Desktop\Zástupci!' ; start '.\Datum a čas - zástupce.lnk'}"
其中括号中的命令是从 Powershell 复制而来的
回报是这样的:
start : This command cannot be run due to the error: Systém nemůže nalézt uvedený soubor.
At line:1 char:46
+ ... rs\JakubLL\Desktop\Zástupci!' ; start '.\Datum a čas - zástupce.lnk'}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Start-Process], InvalidOperationException
+ FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand
系统 nemůže nalézt uvedený soubor。 翻译为:系统找不到指定的文件。
出于某种原因,CMD 会将单词čas
和zástupce
之间的空格更改为不同的空格。
确切地说,这些空间
čas – zástupce
Powershell 的空格在二进制中看起来像这样(包括破折号) 00100000 11100010 10000000 10010011 00100000
当我复制粘贴在 CMD 中的命令时,它看起来像这样(包括破折号) 00100000 00101101 00100000
请有人帮我解决这个问题。 如果我的英语不是最好的,也很抱歉。
编辑:这不是空格,而是它自己的破折号!
start
是Start-Process
的别名。 别名不应放入代码中。 它们在控制台上有助于减少打字,但它们应该是 go。
powershell -NoLogo -NoProfile -Command ^
"Start-Process -WorkingDirectory 'C:\Users\JakubLL\Desktop\Zástupci!' `" ^
" -FilePath '.\Datum a čas – zástupce.lnk'"
如果您认为 cmd.exe 正在更改空格,请将Start-Process
命令放入 doit.ps1 文件并调用它:
powershell -NoLogo -NoProfile -File '.\doit.ps1'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.