Powershell未在cmd上运行
我正在尝试运行以下命令,但当我执行该命令时,CMD窗口将关闭,而不执行该命令 命令是Powershell未在cmd上运行,powershell,cmd,Powershell,Cmd,我正在尝试运行以下命令,但当我执行该命令时,CMD窗口将关闭,而不执行该命令 命令是 cmd.exe /c powershell.exe (New-Object System.Net.WebClient).DownloadFile(https://site,'%temp%\file.txt');Start-Process '%temp%\file.txt' 这里根本不需要cmd。您也可以在没有外壳的情况下生成进程。此外,引用参数通常是一个好主意,以避免在参数解析时出现意外(cmd例如对括号有自
cmd.exe /c powershell.exe (New-Object System.Net.WebClient).DownloadFile(https://site,'%temp%\file.txt');Start-Process '%temp%\file.txt'
这里根本不需要
cmd
。您也可以在没有外壳的情况下生成进程。此外,引用参数通常是一个好主意,以避免在参数解析时出现意外(cmd
例如对括号有自己的含义,这在这里可能会产生干扰)
powershell-Command“(新对象系统.Net.WebClient).DownloadFile('https://site“,$Env:Temp+'\file.txt');调用项$Env:Temp\file.txt”
我还为您要下载的URL添加了引号,因为如果不这样做,也不会起作用。由于cmd
不再存在,环境变量也可以通过PowerShell进行扩展,使用不同的语法
Start Process
也用于启动流程,并且Invoke Item
更接近您实际需要的内容,尽管我确信使用ShellExecute
行为,Start Process
也可以根据需要启动带有文本文件的记事本
如果有疑问,最好减少所需的零件、工艺和不同包装概念的数量。与您不在PowerShell中使用
Invoke Expression
来运行其他程序的原因相同:这是不必要的,并且引入了另一层解析和解释,使一切变得更加复杂。当您已经从一个cmd.exe窗口运行命令时,为什么还要打开另一个cmd.exe窗口?我会提供以下选项:%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe-NoLogo-NoProfile-Command“(新对象系统.Net.WebClient).下载文件('https://domain.name/file.name“,“%temp%\file.txt”);启动进程-文件路径“%temp%\file.txt”
谢谢。这两个建议都奏效了