使用臨時檔案執行 Powershell

這在其他混合 主題中一再被提及。老派,但執行 Powershell 的簡單方法是:

  • 將 Powershell 指令碼轉換為臨時指令碼
  • 執行臨時指令碼
  • (可選)刪除臨時指令碼

這是一個示例指令碼。

@echo off
echo powershell-command>Temp.ps1
echo another line>>Temp.ps1
    rem echo the script into a temporary file

powershell -File Temp.ps1
    rem execute the temporary script

del Temp.ps1
    rem Optionally remove the temporary script

如果需要長指令碼,上面的方法需要大量的 echo 語句,這是 @Aacini 提出的更好的方法

@echo off
setlocal

    rem Get the number of the "<resource>" line
for /F "delims=:" %%a in ('findstr /N "<resource>" "%~F0"') do set "start=%%a"

    rem Skip such number of lines and show the rest of this file
(for /F "usebackq skip=%start% delims=" %%a in ("%~F0") do echo %%a) > Temp.ps1

powershell -File Temp.ps1
del /f /s /q Temp.ps1

goto :EOF

<resource>
PS
Powershell script