Batch acesso a locais NetBIOS / script associado

1

Estou tentando gravar um arquivo em lote

  • Acessar \ sharelocation \ folder \ file
  • Compare esse arquivo com c: \ folder \ file
  • Se os arquivos forem os mesmos, execute o arquivo local.
  • Se os arquivos forem diferentes, substitua o arquivo local e execute o novo arquivo local.

Estou preso na primeira parte. Existe uma boa maneira de fazer isso?

Talvez eu possa usar net para mapear o compartilhamento para uma carta fixa, se ainda não estiver mapeado, e então usar fc /b ?

    
por Charles 10.12.2010 / 20:04

1 resposta

1

Algo ao longo destas linhas:

  • Monte o compartilhamento, conforme link :

    uso net x: \ share \ location

  • Compare os arquivos

    fc c: \ pasta \ arquivo x: \ pasta \ arquivo

  • Ramifique conforme necessário, de acordo com este SOq - link :

    se errorlevel 1 goto filesDiffer goto noDifferences

  • Desmontar o compartilhamento:

    uso net x: \ share \ location / delete

O script inteiro deve ser:

net use x: \share\location
fc c:\folder\file x:\folder\file
if errorlevel 1 goto filesDiffer
:noDifferences
echo Do something when there are no differences
goto theEnd

:filesDiffer
echo Do something when there are differences

:theEnd
net use x: \share\location /delete

Observe que você teria problemas se x: já estivesse mapeado na máquina de destino. Use fc /b para comparação binária.

    
por 11.12.2010 / 03:46