【发布时间】:2013-07-10 22:37:30
【问题描述】:
我正在尝试编写一个批处理文件,将 exe 文件从网络位置复制到本地位置。它目前可以工作,但根据 Windows 版本(xp 或 win7),由于复制所需的本地路径不同,用户必须选择正确的 .bat 文件。 (每次用户启动机器时,它们都会进入要运行的启动文件夹)。这是我第一次编写批处理文件,在查看 if 语句的语法时完全迷失了方向。如果我能得到一些帮助来解决这个问题,那就太好了。
这是我目前拥有的适用于 XP 的内容:
REM @ECHO OFF
ECHO STARTING MOVEFILES
SET EXITRC=0
SET EXITMSG=EXITRC INITIALIZED
ECHO %EXITRC% -- %EXITMS
COPY "\\networkDrive\install\Individual\program\MOVEFILES.EXE" "C:\DOCUMENTS AND SETTINGS\ALL USERS\START MENU\PROGRAMS\STARTUP\"
ECHO COPIED FILES TO YOUR PC
SET EXITRC=%ERRORLEVEL%
IF NOT %EXITRC% == 0 GOTO :EXIT
SET EXITMSG=PROCESSING COMPLETE
:EXIT
ECHO STEP: %EXITMSG% RC: %EXITRC%
ECHO FINISHING MOVEFILES
PAUSE
EXIT %EXITRC%
这是我为 Windows 7 准备的:
@ECHO OFF
ECHO STARTING MOVEFILESWIN7
SET EXITRC=0
SET EXITMSG=EXITRC INITIALIZED
ECHO %EXITRC% -- %EXITMS
COPY "\\networkDrive\install\Individual\program\MOVEFILES.exe" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup"
ECHO COPIED MOVEFILESWIN7 TO YOUR PC - All Users / Public Startup folder
SET EXITRC=%ERRORLEVEL%
IF NOT %EXITRC% == 0 GOTO :EXIT
SET EXITMSG=PROCESSING COMPLETE
:EXIT
ECHO STEP: %EXITMSG% RC: %EXITRC%
ECHO FINISHING MOVEFILESWIN7
PAUSE
EXIT %EXITRC%
我希望只有一个批处理文件可以涵盖这两种情况,这样用户就不会混淆要运行哪个批处理文件。
【问题讨论】:
-
顺便说一句,如果您使用小写字母,则 堆 更容易阅读批处理脚本。脚本不区分大小写,所以没关系。只需对环境变量或其他关键字(如
NOT)使用全大写。 -
很高兴知道!谢谢!我现在将在我的代码中更改它。我仍在试图弄清楚如何将复制语句放入 if 语句中。例如:IF(win7目录存在)拷贝到win7目录;否则复制到XP目录。或者类似的东西。
-
为什么会被否决?如果您觉得这个问题有帮助,请对问题投赞成票,但不要在没有留下评论或改进建议的情况下投反对票。这是非建设性的。
标签: if-statement batch-file directory copy errorlevel