双击能跑、写进批处理就报错:问题出在当前目录
来源:devblogs.microsoft.com — 2026-10-26
📋 概述
有客户向 Raymond Chen 求助:同一个程序双击可以正常运行,写成批处理启动就报错。他的第一反应是当前目录没设对——在资源管理器里双击文件时,系统会把进程的工作目录设成被双击文件所在的目录,而批处理多半用完整路径启动程序,工作目录仍是批处理自己的位置,于是程序按相对路径找不到 .LTC、.LDC 这类附属文件。客户用 pushd 切到目标目录、结束时 popd 还原后确认修好;他的第二个备选思路是查程序是否在 App Paths 里登记过要追加的 PATH 目录。
🔑 核心要点
双击时资源管理器会把工作目录设为被双击文件所在目录。
批处理用完整路径启动程序时,工作目录不会自动跟着变。
症状是程序找不到同目录下的附属文件,而非程序本身有问题。
修法是在批处理里 pushd 到目标目录,结束时 popd 还原。
💡 金句
when you double-click a file in Explorer, Explorer sets the current directory of the program to the directory containing the thing that you double-clicked
👍 0
❤️ 点赞
👎 0
沉底
← 返回 Hacker News 首页