
Temos um arquivo em lote que cria atalhos em máquinas Windows 2003. O comando que usamos é algo como:
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\*.*"
Agora, também temos algumas máquinas novas com Windows 2008 e o caminho da pasta de atalho (TODOS OS USUÁRIOS) é diferente (C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup).
Então minha pergunta é como colocamos uma condição if para que se o arquivo em lote não encontrar a localização de 2003, ele salve o atalho na localização da máquina de 2008...
Obrigado!
Responder1
IF <statement> (
..
..
) ELSE (
...
...
)
....... ou instruções IF separadas sem ELSE caso haja um terceiro caminho
IF exist "\\%SERVERNAME%\c$\Documents and Settings\" (
...
...
)
IF exist "\\%SERVERNAME%\C:\ProgramData\Microsoft\Windows\Start Menu\" (
...
...
)
você pode querer usar/verificar a variável de ambiente "PERFIL DE TODOS USUÁRIOS" Dá acesso às seguintes pastas automaticamente:
no XP e 2000> C:\Documents and Settings\All Users no
Vista/Win7/+> C:\ProgramData
se você usar a variável em vez do caminho codificado, não precisará da instrução IF...
xcopy "%OutputDir%%LocalOutputDir%\Shortcuts\*.*" "\\%SERVERNAME%\%ALLUSERSPROFILE%\Start Menu\Programs\Startup\*.*"