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

1

Temos um arquivo em lotes que cria atalhos nas máquinas com 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 novas máquinas com Windows 2008 e seu caminho da pasta Atalho (TODOS OS USUÁRIOS) é diferente (C: \ ProgramData \ Microsoft \ Windows \ Menu Iniciar \ Programas \ Inicialização).

Então, minha pergunta é como colocar uma condição if para que, se o arquivo de lote não encontrar o local de 2003, salve o atalho no local da máquina de 2008 ...

Obrigado!

    
por Neeraj Tiwari 08.01.2013 / 23:59

1 resposta

1

IF <statement>  (
..
..
) ELSE (
...
...
)

....... ou declarações IF separadas sem um 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 / checkout a variável de ambiente " ALLUSERSPROFILE " Ele dá acesso às seguintes pastas automaticamente:

no XP e 2000 > C: \ Documents and Settings \ Todos os Usuários
no Vista / Win7 / + > C: \ ProgramData

se você usar a variável em vez do caminho codificado, você não precisa da instrução IF ...

xcopy "%OutputDir%%LocalOutputDir%\Shortcuts\*.*" "\%SERVERNAME%\%ALLUSERSPROFILE%\Start Menu\Programs\Startup\*.*"
    
por 09.01.2013 / 00:26