gpt4 book ai didi

if-statement - 批处理文件检查目录是否存在,如果不存在则使用备用目录进行文件复制

转载 作者:行者123 更新时间:2023-12-04 02:51:24 24 4
gpt4 key购买 nike

我正在尝试编写一个批处理文件,将 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%

我希望只有一个批处理文件可以涵盖这两种情况,这样用户就不会混淆要在哪个批处理文件上运行。

最佳答案

您可以使用环境变量 %ALLUSERSPROFILE%

在 WinXP 上,默认为 C:\Documents and Settings\All Users

在 Win7/2008 上默认为 C:\ProgramData

这里有一个表格:http://ss64.com/nt/syntax-variables.html

我看到您还复制了一个不同的文件。不确定你为什么这样做。也许您可以使用此处的方法进行检测:https://stackoverflow.com/a/2788764/1553090 -- 否则也许您应该利用 %ProgramFiles%%ProgramFiles(x86)% 变量。

只是详细说明您可能会选择如何使用这些变量...您可以测试 Win7 启动文件夹是否存在,如果不存在,则回退到 XP(无论它是否存在)。

set STARTUP_WIN7=%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Startup
set STARTUP_WINXP=%ALLUSERSPROFILE%\Start Menu\Programs\Startup

if EXIST "%STARTUP_WIN7%" (
set STARTUP=%STARTUP_WIN7%
) else (
set STARTUP=%STARTUP_WINXP%
)

关于if-statement - 批处理文件检查目录是否存在,如果不存在则使用备用目录进行文件复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17582144/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com