本帖最后由 yakeyun 于 2023-4-2 16:24 编辑
只有在开头加入@shift /0 命令,才能解决powershell报错情况,并正常执行所有命令。
使用环境是将bat转EXE后执行,释放数据在%temp%下,其为一个随机命令的bat文件。
批处理代码调用歌曲文件为EXE目录,在不加入@shift /0 命令的情况下,程序运行会报错。
下面是案例代码:- @shift /0
- @echo off
- cd /d "%~dp0"
- taskkill /f /t /IM powershell.exe 1>nul 2>nul
- setlocal enabledelayedexpansion
- :run
-
- for /f "tokens=5 delims== " %%a in ('wmic os get caption /value ^|find /i "Windows"') do set sysinfo=%%a
- if %sysinfo% EQU 专业版 (call :ZYB)
- if %sysinfo% EQU 家庭中文版 (call :JTZWB)
-
- tasklist |Find "10_netvideo.exe" >nul && (goto run)
- exit
-
- :ZYB
- powershell -c (New-Object Media.soundPlayer "ZYB.WAV").PlaySync();
- :JTZWB
- powershell -c (New-Object Media.soundPlayer "JTZWB.WAV").PlaySync();
复制代码
|