2016-06-20 9 views
-1

Ich versuche, eine einfache Batch-Datei zu erstellen, wo es den Tag überprüft, und wenn der Tag 01 ist, wird das Programm die Dateien in eine Sicherung verschieben.Wenn sonst Schleife im Batch

IF %day%==01(
move *.LST &dfs#\BackUp\ 
echo "Files moved successfully" 
)ELSE (
"Files will get deleted only on 1st day of the month" 
) 

Aber es wirft den Fehler "Syntax ist falsch", kann jemand bitte überprüfen ..

+0

der else-Befehl hat Echo in es, nur vergessen, während in der Frage –

+0

hinzufügen Dann klicken Sie bitte auf die Schaltfläche [Bearbeiten] (http://stackoverflow.com/posts/37922686/edit) der Frage und korrigieren Sie den Code dort! – aschipfl

+0

1. Es fehlen einige Leerzeichen: eins zwischen '01' und' (', und ein anderes zwischen') 'und' ELSE'; 2. Sie sollten "IF"% day% "==" 01 "' schreiben, um Probleme zu vermeiden, wenn '% day%' leer ist; 3. Sie müssen die Pfade an den 'move'-Befehl zwischen Anführungszeichen setzen, wie' move' * .LST "" & dfs # \ BackUp \ "', weil das '&' ansonsten als Befehlsverknüpfungsoperator interpretiert wird; 4. Sie sollten die Anführungszeichen in den 'Echo'-Texten entfernen, außer Sie sollen auch angezeigt werden ... – aschipfl

Antwort

1

Wahrscheinlich% Tag% nicht richtig eingestellt ist, versuchen Sie diese (Backup-Speicherort einstellen):

@echo off 
if %date:~-2%==01 ( 
    move *.lst backup 
    echo files moved successfully 
) else (
    echo files will get deleted only on 1st day of the month 
) 
+0

funktioniert, Vielen Dank .. Ich frage mich immer noch, ich habe das gleiche verwendet, um den Tag des Monats zu erhalten und eine Variable zugewiesen .. weiß nicht, was schief gelaufen ist –

+0

@BharathKumarReddy, wenn diese Antwort Ihnen hilft, geben Sie es ist ein upvote. Wenn es eine vollständige Antwort ist, akzeptiere es. So funktioniert die Website und Sie müssen lernen, wie es funktioniert, wenn Sie es verwenden möchten. –

+0

@PaulTomblin meine schlechte, ich habe es bereits versucht, aber ich habe nicht genug Ruf zu verbessern –