Arquivos em lote para criar atalhos em vários locais usando a condição if

Arquivos em lote para criar atalhos em vários locais usando a condição if

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\*.*"

informação relacionada