Zum Inhalt springen

batch Programmierung - syntaxfehler?!


Empfohlene Beiträge

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!

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 . . .

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich bin nochmal einen schritt weitergekommen :D

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 =(

Link zu diesem Kommentar
Auf anderen Seiten teilen

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:\>

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :D

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:\>

Link zu diesem Kommentar
Auf anderen Seiten teilen

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"

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.. ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Okay...

Also wenn ich diese Batch anwenden würde, dann wäre ich auch admin, und bräcuhte den ordner temp nicht :D

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..

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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]


)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...