
У нас есть пакетный файл, который создает ярлыки на машинах с Windows 2003. Команда, которую мы используем, выглядит примерно так:
echo copy the shortcut to the server All Users folder for windows 2003...
xcopy "%OutputDir%%LocalOutputDir%\Shortcuts\*.*" "\\%SERVERNAME%\c$\Documents and Settings\All Users\Start Menu\Programs\Startup\*.*"
Теперь у нас есть несколько новых машин с Windows 2008, и их путь к папке ярлыков (ВСЕ ПОЛЬЗОВАТЕЛИ) отличается (C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup).
Итак, мой вопрос заключается в том, как нам задать условие if, чтобы, если пакетный файл не найдет местоположение 2003, он сохранил ярлык в местоположении машины 2008...
Спасибо!
решение1
IF <statement> (
..
..
) ELSE (
...
...
)
....... или отдельные операторы IF без ELSE в случае, если есть третий путь
IF exist "\\%SERVERNAME%\c$\Documents and Settings\" (
...
...
)
IF exist "\\%SERVERNAME%\C:\ProgramData\Microsoft\Windows\Start Menu\" (
...
...
)
вы можете использовать/проверить переменную окружения "ALLUSERSPROFILE" Он автоматически предоставляет вам доступ к следующим папкам:
в XP и 2000> C:\Documents and Settings\All Users
в Vista/Win7/+> C:\ProgramData
если вы используете переменную вместо жестко закодированного пути, вам не нужен оператор IF...
xcopy "%OutputDir%%LocalOutputDir%\Shortcuts\*.*" "\\%SERVERNAME%\%ALLUSERSPROFILE%\Start Menu\Programs\Startup\*.*"