Я пытаюсь написать пакетный файл, который копирует 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%
Я хотел бы иметь только один пакетный файл, который будет охватывать оба сценария, поэтому нет путаницы с пользователем, для которого запускается командный файл.
Кстати, это * heaps * более легкое чтение командных скриптов, если вы используете нижний регистр. Сценарии не чувствительны к регистру, поэтому все в порядке. Просто используйте all-caps для переменных среды или других ключевых слов, таких как 'NOT'. – paddy
приятно знать !! Благодаря! Я изменил это в своем коде прямо сейчас. Я все еще пытаюсь выяснить, как поместить копии в оператор if. Например: IF (каталог win7 существует) копировать в каталог win7; else скопируйте в каталог XP. Или что-то вдоль этих линий. – SteveAnselment
Почему это происходит? Если вы найдете этот вопрос полезным, пожалуйста, пожалуйста, проголосуйте, но не голосуйте, не оставляя комментариев или предложений об улучшении. Это неконструктивно. – SteveAnselment