mcu*_*mcu 8 powershell command-line batch-file
我想将几行代码从批处理文件传递给powershell.exe as -command参数.
例如,代码如下:
SET LONG_COMMAND=
if ($true)
{
Write-Host "Result is True"
}
else
{
Write-Host "Result is False"
}
START Powershell -noexit -command "%LONG_COMMAND%"
Run Code Online (Sandbox Code Playgroud)
我想这样做而不创建PowerShell脚本文件,只创建一个批处理文件.
可能吗?
谢谢.
Ryn*_*ant 13
您可以添加"^"以继续分配给变量的字符串.这会将命令创建为一行,因此您需要使用';' 之间的陈述:
@ECHO off
SET LONG_COMMAND= ^
if ($true) ^
{ ^
Write-Host "Result is True"; ^
Write-Host "Multiple statements must be separated by a semicolon." ^
} ^
else ^
{ ^
Write-Host "Result is False" ^
}
START Powershell -noexit -command %LONG_COMMAND%
Run Code Online (Sandbox Code Playgroud)
如果您需要执行的唯一代码是PowerShell,您可以使用以下内容:
;@Findstr -bv ;@F "%~f0" | powershell -command - & goto:eof
if ($true){
Write-Host "Result is True" -fore green
}
else{
Write-Host "Result is False" -fore red
}
Start-Sleep 5
Run Code Online (Sandbox Code Playgroud)
它将所有不以"; @F"开头的行传递给PowerShell.
编辑:我能够在单独的窗口中启动PowerShell并允许cmd退出:
@@ECHO off
@@setlocal EnableDelayedExpansion
@@set LF=^
@@SET command=#
@@FOR /F "tokens=*" %%i in ('Findstr -bv @@ "%~f0"') DO SET command=!command!!LF!%%i
@@START powershell -noexit -command !command! & goto:eof
if ($true){
Write-Host "Result is True" -fore green
}
else{
Write-Host "Result is False" -fore red
}
Run Code Online (Sandbox Code Playgroud)
请注意,设置'LF'变量后必须有2个空格,因为我们正在为变量分配换行符.
使用
start powershell -NoExit -EncodedCommand "aQBmACAAKAAkAHQAcgB1AGUAKQAKAHsACgBXAHIAaQB0AGUALQBIAG8AcwB0ACAAIgBSAGUAcwB1AGwAdAAgAGkAcwAgAFQAcgB1AGUAIgAKAH0ACgBlAGwAcwBlAAoAewAKAFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAiAFIAZQBzAHUAbAB0ACAAaQBzACAARgBhAGwAcwBlACIACgB9AAoA"
Run Code Online (Sandbox Code Playgroud)
引自 powershell /?
Run Code Online (Sandbox Code Playgroud)# To use the -EncodedCommand parameter: $command = 'dir "c:\program files" ' $bytes = [System.Text.Encoding]::Unicode.GetBytes($command) $encodedCommand = [Convert]::ToBase64String($bytes) powershell.exe -encodedCommand $encodedCommand
您可以使用一个命令,否则-EncodedCommand只需提供一个Base64编码的字符串就可以进行笨拙的转义.
| 归档时间: |
|
| 查看次数: |
9441 次 |
| 最近记录: |