Babybear Geschrieben 29. Oktober 2009 Teilen Geschrieben 29. Oktober 2009 Hallo Ihr! Ich hoffe ihr könnt mir helfen, ich versuche ein batch zu programmieren.. Hier mal der code.. echo off cls echo Einleitung blablubb Pause if exist "C:\Documents and Settings\benderj\Desktop\temp\robocopy.exe" color 0A weiter gehen solls dann mit "wenn robocopy vorhanden ist, führe robocopy.exe aus. wenn robocopy nicht vorhanden ist, kompiere es von H:\temp nach C:\Documents and Settings\benderj\Desktop\temp\ und führe es dann aus. und davon soll ichnoch ein logfile erstelllen (also ob das kopieren zB geklappt hat usw.. ) bei if exist "C:\Documents and Settings\benderj\Desktop\temp\robocopy.exe" zeigt er mir schon einen syntax fehler an. was ist denn falsch? hab noch nie vorher ein abtch programmiert, vresuch mich da ein wenig durchzuwurschteln, aber das internet kanns mir irgendwie nicht gut genug erklären =( ich hoffe ihr könnt mir helfen. Danke! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 29. Oktober 2009 Teilen Geschrieben 29. Oktober 2009 Was für ein Fehler tritt denn auf? Die anderen benötigten Funktionen musst du noch in einen else-Block mit hineinpacken. IF EXIST ... ( robocopy.exe ... ) ELSE ( cp H:\ ... ) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Babybear Geschrieben 29. Oktober 2009 Autor Teilen Geschrieben 29. Oktober 2009 Also ich seh dann: Einleitung blablablubb Drücken Sie eine beliebige Taste... (*drück*) Syntaxfehler mehr nicht.. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Babybear Geschrieben 29. Oktober 2009 Autor Teilen Geschrieben 29. Oktober 2009 Ich hab dann mal weitergetüftelt.. der code: echo off cls echo Einleitung blablubb Pause if exist (C:\Documents and Settings\benderj\Desktop\temp\robocopy.exe) color 0A C:\Documents and Settings\benderj\Desktop\temp\robocopy.exe else ( xcopy /s /e /h H:\robocopy.exe C:\Documents and Settings\benderj\Desktop\temp\ color C:\Documents and Settings\benderj\Desktop\temp\robocopy.exe ) echo blablubb echo. Pause soo und das kommt dabei raus. : Einleitung blablubb Drücken Sie eine beliebige Taste . . . Der Befehl "C:\Documents" ist entweder falsch geschrieben oder konnte nicht gefunden werden. Der Befehl "else" ist entweder falsch geschrieben oder konnte nicht gefunden werden. Unzulässige Parameteranzahl Der Befehl "C:\Documents" ist entweder falsch geschrieben oder konnte nicht gefunden werden. blablubb Drücken Sie eine beliebige Taste . . . Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Babybear Geschrieben 29. Oktober 2009 Autor Teilen Geschrieben 29. Oktober 2009 Ich bin nochmal einen schritt weitergekommen google hilft einem soweit doch ein wenig.. aber ein paar fehler und probleme hab ich noch =( echo off cls echo Einleitung blablubb Pause if exist (C:\Documents and Settings\benderj\Desktop\temp\robocopy.exe C:\Documents and Settings\benderj\Desktop\temp\robo_backup.bat) color 0A start "Robocopy" [C:\Documents and Settings\benderj\Desktop\temp\] [robo_backup.bat] else ( xcopy /s /e /h H:\robocopy.exe C:\Documents and Settings\benderj\Desktop\temp\ color start C:\Documents and Settings\benderj\Desktop\temp\robo_backup.bat ) echo blablubb echo. Pause ab dem start "robocopy" [...] funktioniert es nicht mehr.. hier was dabei rauskommt: Einleitung blablubb Drücken Sie eine beliebige Taste . . . Die Datei "[C:\Documents" kann nicht gefunden werden. (?!?!!?! kann das daran liegen das ein leerzeichen zwischen documents and settings liegt? ich kann den ordner aber nicht umbenennen =/ ) Der Befehl "else" ist entweder falsch geschrieben oder konnte nicht gefunden werden. (was is daran falsch? Unzulässige Parameteranzahl (was für ne parameterzahl?) blablubb Drücken Sie eine beliebige Taste . . . Also das programm frägt jetzt ob robocopy und robo_backup da ist . das geht.. dann soll es robo_backup öffnen, eine andere .bat die bestimmte daten sichert (die funktioniert so wie sie ist) und irgendwie funktioniert dieser step nicht =( Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schmarrer Geschrieben 29. Oktober 2009 Teilen Geschrieben 29. Oktober 2009 Hi, setz mal die Pfade in Hochkomma ("PFAD"). Weil du hast Leerzeichen drin. Sieht aus als würde er das EXIST nur auf C:\Documents anwenden wollen. Außerdem überprüfe mal deine Klammern. Bin mir da auf die schnelle nicht ganz sicher ob das so richtig ist. Gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Babybear Geschrieben 29. Oktober 2009 Autor Teilen Geschrieben 29. Oktober 2009 Also so? echo off cls echo Einleitung blablubb Pause if exist ("C:\Documents and Settings\benderj\Desktop\temp\robocopy.exe" "C:\Documents and Settings\benderj\Desktop\temp\robo_backup.bat") color 0A start "Robocopy" ["C:\Documents and Settings\benderj\Desktop\temp"] [robo_backup.bat] else ( xcopy /s /e /h "H:\robocopy.exe" "C:\Documents and Settings\benderj\Desktop\temp" color start C:\Documents and Settings\benderj\Desktop\temp\robo_backup.bat ) echo blablubb echo. Pause >>> Einleitung blablubb Drücken Sie eine beliebige Taste . . . Die Datei "["C:\Documents and Settings\benderj\Desktop\temp"]" kann nicht gefunden werden. Der Befehl "else" ist entweder falsch geschrieben oder konnte nicht gefunden werden. C:\Documents and Settings\benderj\Desktop\temp\robocopy.exe überschreiben (Ja/Nein/Alle)? n (also das kopieren von robpcopy funktioniert anscheinend jetzt =) ) 0 Datei(en) kopiert blablubb Drücken Sie eine beliebige Taste . . . H:\> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 30. Oktober 2009 Teilen Geschrieben 30. Oktober 2009 IF EXIST "%USERPROFILE%\Desktop\temp\robocopy.exe" ( REM Hier Code ) ELSE ( REM Hier Code ) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Babybear Geschrieben 30. Oktober 2009 Autor Teilen Geschrieben 30. Oktober 2009 bedeutet REM sowas wie "dann tue dies?" Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 30. Oktober 2009 Teilen Geschrieben 30. Oktober 2009 Remark, Kommentare An den Stellen sollst du deinen Code einfügen, ich hab dir nur eine ordentliche IF-Syntax hingeschrieben. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Babybear Geschrieben 30. Oktober 2009 Autor Teilen Geschrieben 30. Oktober 2009 dankeschön ich werds gleich mal versuchen!!! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Babybear Geschrieben 30. Oktober 2009 Autor Teilen Geschrieben 30. Oktober 2009 Also ich hab jetzt mal wieder was verändert.. komm leider nur ganz langsam voran und sry falls ich mal ein wenig begriffsstutzig oder so sein sollte.. ist eigentlich nicht mein gebiet test123.bat: echo off cls echo Robocopy if exist "C:\Documents and Settings\benderj\Desktop\temp\robocopy.exe" "C:\Documents and Settings\benderj\Desktop\temp\robo_backup.bat" (color 0A start "Robocopy" /d"C:\Documents and Settings\benderj\Desktop\temp\robo_backup.bat") else ( xcopy /s /e /h "H:\robo" "C:\Documents and Settings\benderj\Desktop\temp" color start "Robocopy" "C:\Documents and Settings\benderj\Desktop\temp\robo_backup.bat" ) Pause robo_backup.bat: robocopy "C:\Documents and Settings\benderj\My Documents" "H:\abc" /MIR /LOG+:H:\Log\log.log und das kommt dabei raus : Robocopy Der Befehl "robocopy" ist entweder falsch geschrieben oder konnte nicht gefunden werden. H:\> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 30. Oktober 2009 Teilen Geschrieben 30. Oktober 2009 Robocopy Der Befehl "robocopy" ist entweder falsch geschrieben oder konnte nicht gefunden werden. Weil RoboCopy weder im %PATH%, noch im aktuellen Verzeichnis liegt. start "C:\Documents and Settings\benderj\Desktop\temp\robocopy.exe" /d"C:\Documents and Settings\benderj\Desktop\temp\robo_backup.bat" Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Babybear Geschrieben 30. Oktober 2009 Autor Teilen Geschrieben 30. Oktober 2009 hmm.. ürsprünglich hatte ich mal den path auf C:\Documents and Settings\benderj\Desktop\temp erweitert, da ich auf die anderen ordner keinen Zugriff hab (keine Adminrechte) aber als ich jetzt nachgeschaut habe war er nicht mehr drinnen.. also %path% "C:\Documents and Settings\benderj\Desktop\temp" oder? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 30. Oktober 2009 Teilen Geschrieben 30. Oktober 2009 hmm.. ürsprünglich hatte ich mal den path auf C:\Documents and Settings\benderj\Desktop\temp erweitert, da ich auf die anderen ordner keinen Zugriff hab (keine Adminrechte) Wenn du es via SET im Script gemacht hattest, geht das nicht, weil dann Path nur für die momentane Sitzung gilt und nach Beenden des Scripts die ursprüngliche Variable wieder gesetzt wurde. also %path% "C:\Documents and Settings\benderj\Desktop\temp" oder? Wenn dann: SET PATH %PATH%;"C:\Documents and Settings\benderj\Desktop\temp" Aber das würde ich nicht machen... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Babybear Geschrieben 30. Oktober 2009 Autor Teilen Geschrieben 30. Oktober 2009 Warum nicht? Es ist ja so, ich programmier die batch datei ja nur als übung. eigentlich wäre alles was indem temp ordner ist soll eigentlich ins windows23 wo ja automatisch der pfad ist. und wenn ich das jetzt als übung mache kann ich doch den path auf den einen ordner erweitern, oder.. ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 30. Oktober 2009 Teilen Geschrieben 30. Oktober 2009 und wenn ich das jetzt als übung mache kann ich doch den path auf den einen ordner erweitern, oder.. ? Ja, ich würde das halt bloß nicht machen, sondern immer explizit aus dem Ordner aufrufen. Grund dafür ist einfach: Angenommen du willst die Datei unter Vista ausführen, dann nimmt er die RoboCopy.exe aus dem system32-Ordner und nicht deine. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Babybear Geschrieben 30. Oktober 2009 Autor Teilen Geschrieben 30. Oktober 2009 Okay... Also wenn ich diese Batch anwenden würde, dann wäre ich auch admin, und bräcuhte den ordner temp nicht aber Danke für deine Hilfe! aber irgendwie hab ich das gefühl das mit dem if funktioniert nicht.. Robocopy Das aktuelle Verzeichnis ist ungültig. Der Befehl "else" ist entweder falsch geschrieben oder konnte nicht gefunden werden. H:\robo\robocopy.exe H:\robo\robo_backup.bat H:\robo\robo_backup.txt 3 Datei(en) kopiert Drücken Sie eine beliebige Taste . . . Das kommt dabei raus wenn der Ordner temp leer ist. Also er macht schon das was ich sage letztenendes, aber trotzdem zeigt er mir noch fehler an.. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 30. Oktober 2009 Teilen Geschrieben 30. Oktober 2009 Wie sieht denn der Code jetzt aus? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Babybear Geschrieben 30. Oktober 2009 Autor Teilen Geschrieben 30. Oktober 2009 echo off cls echo Robocopy if exist "C:\Documents and Settings\benderj\Desktop\temp\robocopy.exe" "C:\Documents and Settings\benderj\Desktop\temp\robo_backup.bat" (color 0A robocopy "C:\Documents and Settings\benderj\My Documents" "H:\abc" /MIR /LOG+:H:\Log\log.log) else ( xcopy /s /e /h "H:\robo" "C:\Documents and Settings\benderj\Desktop\temp" color robocopy "C:\Documents and Settings\benderj\My Documents" "H:\abc" /MIR /LOG+:H:\Log\log.log ) Pause Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 30. Oktober 2009 Teilen Geschrieben 30. Oktober 2009 Deine IF-Bedingung ist so nicht gültig. Was willst du jetzt überhaupt mit dem Programmcode erreichen, immer noch die Anforderung aus dem ersten Post? Dann teste mal hiermit: echo off set DATEI1="C:\Documents and Settings\benderj\Desktop\temp\robocopy.exe" if EXIST %DATEI1% ( color 0A robocopy "C:\Documents and Settings\benderj\My Documents" "H:\abc" /MIR /LOG+:H:\Log\log.log) ) else ( xcopy /s /e /h "H:\robo" "C:\Documents and Settings\benderj\Desktop\temp" color 0B robocopy "C:\Documents and Settings\benderj\My Documents" "H:\abc" /MIR /LOG+:H:\Log\log.log ) pause Und benutze bitte beim nächsten Mal die CODE-Tags aus dem Editor, wenn du Quellcode posten möchtest. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 30. Oktober 2009 Teilen Geschrieben 30. Oktober 2009 probier mal: @ECHO OFF CLS ECHO Robocopy IF EXIST "C:\Documents and Settings\benderj\Desktop\temp\robocopy.exe" ( [INDENT]IF EXIST "C:\Documents and Settings\benderj\Desktop\temp\robo_backup.bat" ( [INDENT]COLOR 0A robocopy "C:\Documents and Settings\benderj\My Documents" "H:\abc" /MIR /LOG+:H:\Log\log.log[/INDENT] )[/INDENT] ) ELSE ( [INDENT]xcopy /s /e /h "H:\robo" "C:\Documents and Settings\benderj\Desktop\temp" color robocopy "C:\Documents and Settings\benderj\My Documents" "H:\abc" /MIR /LOG+:H:\Log\log.log[/INDENT] ) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.