批处理文件问题:将 powershell 变量传递给批处理

batch file problem: pass powershell variable to batch

我有这个 hybris batch/powershell base64 解码器,我想在 powershell 中解码字符串并将解码后的变量批量设置为变量,这是我的代码

@echo off
set syscall=dGVzdGluZ3hk
powershell.exe $decoded=[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($env:syscall));

使用 for /f 语句捕获命令的输出(运行 for /?cmd.exe 会话中获取更多信息):

@echo off
set "syscall=dGVzdGluZ3hk"
for /f "usebackq delims=" %%i in (`powershell.exe -noprofile -c "[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($env:syscall))"`) do set "decoded=%%i"

执行以上后,%decoded%包含testingxd.