繁体   English   中英

Powershell命令输入CMD时不起作用

[英]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 会将单词časzástupce之间的空格更改为不同的空格。

确切地说,这些空间čas – zástupce

Powershell 的空格在二进制中看起来像这样(包括破折号) 00100000 11100010 10000000 10010011 00100000

当我复制粘贴在 CMD 中的命令时,它看起来像这样(包括破折号) 00100000 00101101 00100000

请有人帮我解决这个问题。 如果我的英语不是最好的,也很抱歉。

编辑:这不是空格,而是它自己的破折号!

startStart-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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM