找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 17800|回复: 2

[其他] bat转exe执行后@shift /0 命令作用求解答

[复制链接]
发表于 2023-4-2 14:29:46 | 显示全部楼层 |阅读模式
本帖最后由 yakeyun 于 2023-4-2 16:24 编辑

只有在开头加入@shift /0  命令,才能解决powershell报错情况,并正常执行所有命令。
使用环境是将bat转EXE后执行,释放数据在%temp%下,其为一个随机命令的bat文件。
批处理代码调用歌曲文件为EXE目录,在不加入@shift /0  命令的情况下,程序运行会报错。

下面是案例代码:
  1. @shift /0
  2. @echo off
  3. cd /d "%~dp0"
  4. taskkill /f /t /IM powershell.exe 1>nul 2>nul
  5. setlocal enabledelayedexpansion
  6. :run

  7. for /f "tokens=5 delims== " %%a in ('wmic os get caption /value ^|find /i "Windows"') do set sysinfo=%%a
  8. if %sysinfo% EQU 专业版 (call :ZYB)
  9. if %sysinfo% EQU 家庭中文版 (call :JTZWB)

  10. tasklist |Find "10_netvideo.exe" >nul && (goto run)
  11. exit

  12. :ZYB
  13. powershell -c (New-Object Media.soundPlayer "ZYB.WAV").PlaySync();
  14. :JTZWB
  15. powershell -c (New-Object Media.soundPlayer "JTZWB.WAV").PlaySync();
复制代码
发表于 2023-4-2 17:14:58 | 显示全部楼层
这个报错是找不到文件位置。在你的脚本中shift /0似乎是移除了变量%0,使cd /d "%~dp0"失效
 楼主| 发表于 2023-4-3 22:13:55 | 显示全部楼层
回复 2# buyiyang

只有加入shift /0 转EXE执行才能正常运行,如果不加入转EXE就会如图片显示报错。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 22:46 , Processed in 0.018383 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表