首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为Windows及更高版本重新编码Windows %编程文件%

如何为Windows及更高版本重新编码Windows %编程文件%
EN

Stack Overflow用户
提问于 2013-01-15 23:11:04
回答 1查看 1.1K关注 0票数 0

如何对包含以下命令的Windows批处理文件进行重新编码,以便在以后的Windows批处理文件中工作,其中两个.exes可能位于程序文件(x86)

代码语言:javascript
复制
start "GW" /WAIT "%PROGRAMFILES%\GoldWave\GoldWave.exe" [...arguments...]
start "BC" /WAIT "%PROGRAMFILES%\Beyond Compare 3\BCompare.exe" [...arguments...]

这是失败的:

代码语言:javascript
复制
PATH=%PATH%;%PROGRAMFILES%;%PROGRAMFILES(X86)%
...
start "GW" /WAIT "GoldWave\GoldWave.exe" [...arguments...]
start "BC" /WAIT "Beyond Compare 3\BCompare.exe" [...arguments...]

这是成功的,但很笨拙:

代码语言:javascript
复制
PATH=%PATH%;%PROGRAMFILES%\Goldwave;%PROGRAMFILES(X86)%\Goldwave;%PROGRAMFILES%\Beyond Compare 3;%PROGRAMFILES(X86)%\Beyond Compare 3%
...
start "GW" /WAIT "GoldWave.exe" [...arguments...]
start "BC" /WAIT "BCompare.exe" [...arguments...]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-15 23:48:39

您可以首先检查%ProgramFiles(x86)%是否有一个值。如果是这样的话,您要查找的程序应该在该目录中找到:

代码语言:javascript
复制
SETLOCAL
SET PROGRAMFILESINUSE=%ProgramFiles%
IF NOT "%ProgramFiles(x86)%"=="" SET PROGRAMFILESINUSE=%ProgramFiles(x86)%
START "GW" /WAIT "%PROGRAMFILESINUSE%\GoldWave\GoldWave.exe"

或者,您可以让它更多地参与进来,并让它实际检查您要查找的文件在哪里存在:

代码语言:javascript
复制
SETLOCAL
SET PROGRAMDIRECTORY=
SET RELATIVEFILEPATH=GoldWave\Goldwave.exe
CALL :CHECKFORPROGRAM "%RELATIVEFILEPATH%" "%ProgramFiles(x86)%"
CALL :CHECKFORPROGRAM "%RELATIVEFILEPATH%" "%ProgramFiles%"
IF "%PROGRAMDIRECTORY%"=="" GOTO :NOTFOUND
ECHO Found at %PROGRAMDIRECTORY%\%RELATIVEFILEPATH%
GOTO :EOF
:CHECKFORPROGRAM
IF NOT "%PROGRAMDIRECTORY%"=="" GOTO :EOF
IF EXIST "%~2\%~1" SET PROGRAMDIRECTORY=%~2
GOTO :EOF
:NOTFOUND
ECHO %RELATIVEFILEPATH% not found
GOTO :EOF
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14348649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档