2014-07-21 5 views
0

Je suis en train d'écrire ce qui suit pour copier la base de données à un serveur hors siteA défaut d'utiliser plusieurs déclarations si

IF EXIST "G:\Innova\Ziped\%file%" (

xcopy "G:\Innova\Ziped\%file%" "\\192.168.0.4\e$\Innovabackupdailly\" 

) 

IF EXIST "G:\Innova\Ziped\%file2%" (

xcopy "G:\Innova\Ziped\%file2%" "\\192.168.0.4\e$\Innovabackupdailly\" 

) 

IF EXIST "G:\Innova\Ziped\%file3%" (

xcopy "G:\Innova\Ziped\%file3%" "\\192.168.0.4\e$\Innovabackupdailly\" 

) 

    IF EXIST "G:\Innova\Ziped\%file4%" (

xcopy "G:\Innova\Ziped\%file4%" "\\192.168.0.4\e$\Innovabackupdailly\" 

) 

IF EXIST "G:\Innova\Ziped\%file5%" (

xcopy "G:\Innova\Ziped\%file5%" "\\192.168.0.4\e$\Innovabackupdailly\" 

) 

IF EXIST "G:\Innova\Ziped\%file6%" (

xcopy "G:\Innova\Ziped\%file6%" "\\192.168.0.4\e$\Innovabackupdailly\" 

) 

IF EXIST "G:\Innova\Ziped\%file7%" (

xcopy "G:\Innova\Ziped\%file7%" "\\192.168.0.4\e$\Innovabackupdailly\" 

) 

Quand je lance le code je reçois inattendu en cas d'erreur. Mais si je ne pars que s'il fonctionne avec succès.

Répondre

0

Vous n'avez pas du tout besoin de parenthèses. Il suffit de les convertir en instructions simples:

IF EXIST "G:\Innova\Ziped\%file%" xcopy "G:\Innova\Ziped\%file%" "\\192.168.0.4\e$\Innovabackupdailly\" 

IF EXIST "G:\Innova\Ziped\%file2%" xcopy "G:\Innova\Ziped\%file2%" "\\192.168.0.4\e$\Innovabackupdailly\" 

et ainsi de suite.

+0

Merci Ken. Cela a vraiment fonctionné – user3789498

0

Essayez comme ci-dessous à l'aide IF .. ELSE construction (Un échantillon inclus)

@echo off 

set file="Data.csv" 
set file2="Data2.csv" 
set file3="Data3.csv" 

IF EXIST "D:\SO_Test\%file%" (
echo %file% 
) ELSE IF EXIST "D:\SO_Test\%file2%" (
echo %file2% 
) ELSE "D:\SO_Test\%file3%" (
echo %file3% 
) 
0

Il y a beaucoup de fichiers référencés par un bon nombre de variables d'environnement, bien que tous les fichiers sont dans le même répertoire et doivent être copiés dans un même répertoire. Par conséquent, pourquoi ne pas copier tous les fichiers avec un jeu d'attributs d'archive et supprimer l'attribut d'archive après la copie pour éviter de copier à nouveau ce fichier lors de la prochaine exécution?

xcopy "G:\Innova\Ziped\*" "\\192.168.0.4\e$\Innovabackupdailly\" /C /H /I /K /M /Q /R /Y /Z 

Voir la documentation Microsoft pour

  • xcopy - Windows XP/2000
  • xcopy - Windows Vista et versions ultérieures

pour une description de tous les commutateurs.

0

C'est ainsi que je le ferais:

D'abord, je voudrais permettre une expansion retardée au début et à inclure un numéro 1 dans le premier nom:

setlocal EnableDelayedExpansion 

. . . 

set "file1=FirstName.zip" 

Ensuite, je copie tous les fichiers via une commande for /L:

for /L %%i in (1,1,7) do (
    IF EXIST "G:\Innova\Ziped\!file%%i!" (
     xcopy "G:\Innova\Ziped\!file%%i!" "\\192.168.0.4\e$\Innovabackupdailly\" 
    ) 
)