programing

단일 따옴표 내부의 변수 확장

megabox 2023. 9. 1. 20:44
반응형

단일 따옴표 내부의 변수 확장

확장 방법$pw안에 있는 작은 따옴표?

$pw = "$PsHome\powershell.exe"
cmd.exe /c 'schtasks /create /tn cleanup /tr "$pw -WindowStyle hidden -ExecutionPolicy Bypass -nologo -noprofile %TEMP%\exec.ps1" /sc minute /mo 1'

서식을 사용하여 다른 변수에 할당할 수 있습니다.

$pw = "$PsHome\powershell.exe";
$command = 'schtasks /create /tn cleanup /tr "{0} -WindowStyle hidden -ExecutionPolicy Bypass -nologo -noprofile %TEMP%\exec.ps1" /sc minute /mo 1' -f $pw;
cmd.exe /c $command

또는 큰따옴표를 사용하고 따옴표를 사용하여 내부 따옴표를 이스케이프할 수 있습니다.

$pw = "$PsHome\powershell.exe"
cmd.exe /c "schtasks /create /tn cleanup /tr ""$pw -WindowStyle hidden -ExecutionPolicy Bypass -nologo -noprofile %TEMP%\exec.ps1"" /sc minute /mo 1"

또는 동일하게 하되 백티크(무덤)를 사용하여 탈출합니다.

$pw = "$PsHome\powershell.exe"
cmd.exe /c "schtasks /create /tn cleanup /tr `"$pw -WindowStyle hidden -ExecutionPolicy Bypass -nologo -noprofile %TEMP%\exec.ps1`" /sc minute /mo 1"

다른 옵션은 자동 변수를 사용하는 것입니다. $ExecutionContext:

$pw = "$PsHome\powershell.exe"
$cmd = 'schtasks /create /tn cleanup /tr "$pw -WindowStyle hidden -ExecutionPolicy Bypass -nologo -noprofile %TEMP%\exec.ps1" /sc minute /mo 1'
$cmd = $ExecutionContext.InvokeCommand.ExpandString($cmd)
cmd.exe /c $cmd

언급URL : https://stackoverflow.com/questions/32127583/expand-variable-inside-single-quotes

반응형