找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 103|回复: 7

[求助] 在批处理里运行和在DOS窗口直接运行结果不一样

[复制链接]
发表于 1 小时前 | 显示全部楼层 |阅读模式
批处理文件内容:
@echo OFF&(PUSHD "%~DP0")&(REG QUERY "HKU\S-1-5-19">NUL 2>&1)||(
powershell -Command "Start-Process '%~sdpnx0' -Verb RunAs"&&EXIT)
Rem 关联PDF文件
Reg add "HKEY_CURRENT_USER\Software\Classes\.pdf" /ve /t REG_SZ /d "pdf_auto_file" /f >nul
Reg add "HKEY_CURRENT_USER\Software\Classes\pdf_auto_file\shell\open\command" /ve /t REG_SZ /d "\"C:\Program Files\Kingsoft\WPS Office\12.1.0.25222\office6\wpspdf.exe\" \"%1\"" /f >nul

在DOS窗口直接运行:Reg add "HKEY_CURRENT_USER\Software\Classes\pdf_auto_file\shell\open\command" /ve /t REG_SZ /d "\"C:\Program Files\Kingsoft\WPS Office\12.1.0.25222\office6\wpspdf.exe\" \"%1\"" /f

两个结果不一样:
批处理结果:"C:\Program Files\Kingsoft\WPS Office\12.1.0.25222\office6\wpspdf.exe" ""
DOS窗口运行结果:"C:\Program Files\Kingsoft\WPS Office\12.1.0.25222\office6\wpspdf.exe" "%1"

请大神指点
发表于 1 小时前 | 显示全部楼层
核心原因:批处理里 %1 会被当成参数变量,直接消失
你遇到的是批处理脚本的语法特性:
在 CMD/DOS 窗口手动输入:%1 就是普通文本,原样写入注册表
在 .bat 批处理文件 中:%1 是批处理的内置参数,运行时会被替换成空值,所以最终变成了 ""
解决方案(只改 1 个字符)
批处理里要想保留 % 符号,必须写成 %%1(双百分号)

点评

非常感謝  详情 回复 发表于 半小时前
謝謝分享,非常感謝您!  详情 回复 发表于 1 小时前
回复

使用道具 举报

 楼主| 发表于 1 小时前 | 显示全部楼层
已解决
回复

使用道具 举报

发表于 1 小时前 | 显示全部楼层
学习一下
回复

使用道具 举报

发表于 1 小时前 | 显示全部楼层
忧心的启 发表于 2026-3-26 13:07
核心原因:批处理里 %1 会被当成参数变量,直接消失
你遇到的是批处理脚本的语法特性:
在 CMD/DOS 窗口手 ...

謝謝分享,非常感謝您!
回复

使用道具 举报

 楼主| 发表于 半小时前 | 显示全部楼层
忧心的启 发表于 2026-3-26 13:07
核心原因:批处理里 %1 会被当成参数变量,直接消失
你遇到的是批处理脚本的语法特性:
在 CMD/DOS 窗口手 ...

非常感謝
回复

使用道具 举报

发表于 半小时前 | 显示全部楼层
有好奇什么人会用WPS的垃圾PDF阅读器...


二○二六年三月二十六日
回复

使用道具 举报

发表于 半小时前 | 显示全部楼层
解决了就好
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持| 无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-3-26 14:30

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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