Windows10下同一份powercfg批处理在不同目录运行出现卡住问题求助
问题根因
CMD执行命令时默认遵循「当前工作目录优先查找」规则:执行无路径的命令时,会先在当前工作目录匹配同名的exe/bat/cmd/com可执行文件,匹配成功则直接执行,未匹配才会遍历系统Path环境变量指定的路径查找。
你出现问题的C:\Users\idoblas\Desktop\powerCFG\目录下,存在和系统电源管理工具同名的powercfg.exe/powercfg.bat/powercfg.cmd文件,脚本执行时调用了当前目录下的异常同名文件,而非系统自带的C:\Windows\System32\powercfg.exe,导致执行卡住。
验证方法
打开CMD,切换到出问题的目录,执行以下命令:
where powercfg
如果返回的第一条结果是当前目录下的文件,而非系统路径下的C:\Windows\System32\powercfg.exe,即可确认是该问题。
也可以直接在问题目录下执行powercfg /getactivescheme,看是否能正常返回当前电源计划的信息。
解决方案
方案1(临时修复)
删除问题目录下和powercfg同名的异常文件即可恢复脚本正常执行。
方案2(永久兼容,推荐)
修改批处理脚本中所有powercfg调用,直接指定系统自带工具的完整路径,彻底规避路径/环境变量导致的命令冲突:
把脚本中所有的powercfg替换为%SystemRoot%\System32\powercfg.exe,示例:
REM 原卡住的行修改后 FOR /F "tokens=6" %%G IN ('%SystemRoot%\System32\powercfg.exe /getactivescheme') DO set activeschemeGUID=%%G
所有涉及电源配置的命令全部替换后,无论脚本放在哪个目录运行,都会调用系统官方的电源管理工具,不会再出现路径相关的异常。
内容的提问来源于stack exchange,提问作者Ienego
相关产品推荐
相关产品推荐

