如何退出运行 powershell

如何退出运行 powershell

我有以下脚本:

@echo off

title cpm
color e

powershell -command "& cls; `
Write-Host write anything:; `
echo "hello""

它不让我以这种方式执行它,我该如何转义空白行以便可以执行它?我尝试过使用 \ 和 ^^,但都不行,如果我把它放在一行中,它运行完美

答案1

根据我在你的另一篇文章中的评论,我提供了反馈。这就是我的意思。

下面将按如下所示进行工作...

@echo off
cls
::
title cpm
color e
::
::
cls
PowerShell -Command 'Hello from PowerShell^';^
Get-Date^;^
(Get-Process)[0]
::
@echo off
echo "hello from cmd"

:: Begin Results =========================================
:: D:\Scripts>PowerShell -Command 'Hello from PowerShell';Get-Date;(Get-Process)[0]
:: Hello from PowerShell
:: 
:: Saturday, August 6, 2022 00:30:14
:: 
:: Id      : 10508
:: Handles : 224
:: CPU     :
:: SI      : 0
:: Name    : aesm_service
:: 
:: 
:: 
:: "hello from cmd"
:: End Results =========================================

...但是,如果您尝试在“Get-Process”上使用 Select-Object 命令,它将失败。同样,您尝试和触发的 PS 命令越复杂,您遇到的问题(格式和执行)就越多。

因此,我无法理解为什么要使用嵌入 PS 代码的 bat/cmd,但同样,只需编写 .ps1 并通过 PS 从 bat/cmd 文件中调用它即可。您将拥有更多的灵活性和可读性选项,以及更少的麻烦和不合理的代码语句。

答案2

我不确定您的意图,但命令行 Powershell 命令有点不对。我相信您想要类似下面的东西,但您可能希望将清除屏幕调用移到"& cls"下面echo "hello"。此外,清除屏幕也是命令行的固有功能,只需使用cls(您不需要使用 Powershell):

@echo off

title ControlMantis
color e

set RUTATEMP="%temp%\pass.pass"

powershell -command "& cls";
powershell -command Write-Host "write anything:";
echo "hello"

您还可以将这些 PS 命令链接在一起:

powershell -command "& cls"; Write-Host "write anything 1:"; Write-Host "write anything 2:"; Write-Host "write anything 3:";

答案3

在编写批处理脚本时,可以使用^(就像在编辑问题之前所做的那样)进行行延续。删除"在 Powershell 命令开头添加的。"在 Write-Host cmdlet 之后添加,因为字符串中有一个空格。

@echo off

title cpm
color e

powershell -command cls; ^
Write-Host "write anything:"; ^
echo "hello"

相关内容