|
本帖最后由 hlowld 于 2025-2-13 11:53 编辑
有时需要在批处理中执行多行powershell或者vbs脚本,不用临时文件的示例如下:
setlocal ENABLEDELAYEDEXPANSION
::批处理中执行多行powershell脚本示例,把powershell脚本中双引号替换为单引号
set "psCmd=[System.Reflection.Assembly]::LoadWithPartialName('System.windows.forms')"
set "psCmd=!psCmd!;$saveFileDialog = New-Object Windows.Forms.saveFileDialog"
set "psCmd=!psCmd!;$saveFileDialog.Filter = 'WIM files (*.wim)|*.wim'"
set "psCmd=!psCmd!;$saveFileDialog.Title = '选择要保存的.wim文件'"
set "psCmd=!psCmd!;$saveFileDialog.ShowDialog()"
set "psCmd=!psCmd!;Write-Output $saveFileDialog.FileName"
for /f "delims=" %%I in ('powershell.exe -command "!psCmd!"') do set "filePath=%%I"
::批处理中执行多行vbscript脚本示例,把vbscript脚本中双引号替换为两个双引号
set "vbsCmd=Dim window"
set "vbsCmd=!vbsCmd!:Set objShell = CreateObject(""Shell.Application"")"
set "vbsCmd=!vbsCmd!:For Each window In objShell.Windows"
set "vbsCmd=!vbsCmd!:window.Quit"
set "vbsCmd=!vbsCmd!:Next"
mshta vbscript:(Execute("!vbsCmd!:close()"))
|
|