tompazi
Goto Top

Fehler in meiner Batch Datei

Hallo,

Ich schreibe im Moment eine Batch Datei die es mir und den anderen Nutzern meines Pc's ermöglichen soll den Inhalt eines USB Stick leicht auf den Pc zu kopieren.
Soweit bin ich bis jetzt:

@echo off
title USB Stick
IF NOT exist M:\ goto Antwort0
XCOPY M:\ "D:\USB Stick %Date%" /I /E goto Antwort1  
:Antwort0
echo Der USB Stick ist korrekt nicht Angesteckt!
echo Beachten Sie, dass der USB Stick Vorne am PC angesteckt sein muss.
echo Sollten Sie alles Richtig befolgt haben und Dies erscheint immer noch
echo kontaktieren Sie Bitte den Produzenten der Batch Datei.
pause
exit
:Antwort1
echo Die Dateien Ihres USB Sticks wurden erfolgreich nach D:\USB Stick %Date%
echo kopiert.
pause

Der Fehler ist vermutl. beim Xcopy Befehl . Wenn Kein USB Stick angesteckt ist funktioniert die Datei blendend aber wenn einer steckt dann kommt die Fehlermeldung Unzulässige Parameteranzahl.
Ich würde gerne eine ähnliche Datei für Fotos schreiben wobei ich den Ordner so nennen will: %Username%'s Fotos %monat%.%jahr%
Kann man das so machen? Und kann ich der Batch Datei sagen, dass sie nicht 07. sondern Juli. schreiben soll?

Danke im voraus

Thomas

Content-ID: 64322

Url: https://administrator.de/contentid/64322

Ausgedruckt am: 19.11.2024 um 15:11 Uhr

Dynadrate
Dynadrate 20.07.2007 um 16:05:41 Uhr
Goto Top
Die Zeile "XCOPY M:\ "D:\USB Stick %Date%" /I /E goto Antwort1" wird so vermutlich nicht funktionieren. Das "goto Antwort1" muss in die nächste Zeile.

Zum Thema Datum in Batch: Ziemlich haarig. Bieber hat dazu mal ein Tutorial geschrieben, das ich jetzt jedoch nicht finde. Man sollte jedoch zur Erwägung ziehen, andere Programmiersprachen dafür zu nutzen. Mit VB6 kann man auf fertige Funktionen zurück greifen. Andererseits ists natürlich auch immer ne gute Entscheidung, sowas "zu Fuß" zu machen.
Tompazi
Tompazi 20.07.2007 um 16:17:39 Uhr
Goto Top
So? Funktioniert trotzdem nicht =(

@echo off
title USB Stick
IF NOT exist M:\ goto Antwort0
XCOPY M:\ "D:\USB Stick %Date%" /I goto Antwort1
:Antwort1
echo Die Dateien Ihres USB Sticks wurden erfolgreich nach D:\USB Stick %Date%
echo kopiert
pause
exit
:Antwort0
echo Der USB Stick ist korrekt nicht Angesteckt!
echo Beachten Sie, dass der USB Stick Vorne am PC angesteckt sein muss.
echo Sollten Sie alles Richtig befolgt haben und Dies erscheint immer noch
echo kontaktieren Sie Bitte den Produzenten der Batch Datei.
pause

Thomas
problemsolver
problemsolver 20.07.2007 um 17:32:00 Uhr
Goto Top
So ists wohl richtig:
@echo off
title USB Stick
IF NOT exist M:\ goto Antwort0
XCOPY M:\ "D:\USB Stick %Date%" /I /E   
goto Antwort1
:Antwort0
echo Der USB Stick ist korrekt nicht Angesteckt!
echo Beachten Sie, dass der USB Stick Vorne am PC angesteckt sein muss.
echo Sollten Sie alles Richtig befolgt haben und Dies erscheint immer noch
echo kontaktieren Sie Bitte den Produzenten der Batch Datei.
pause
exit
:Antwort1
echo Die Dateien Ihres USB Sticks wurden erfolgreich nach D:\USB Stick %Date%
echo kopiert.
pause

Gruß

Markus
Dynadrate
Dynadrate 20.07.2007 um 17:36:03 Uhr
Goto Top
So? Funktioniert trotzdem nicht =(
...

XCOPY M:\ "D:\USB Stick %Date%" /I goto Antwort1


Ich hatte doch gesagt, das "goto Antwort1" muss in die nächste Zeile??
Tompazi
Tompazi 20.07.2007 um 18:09:54 Uhr
Goto Top
Achso tschuligung hab mich verlesen

Ich habe noch eine frage ich will das die bat datei nach erfolgreichem kopieren fragt ob sie die Dateien auf dem USB Stick löschen soll und man das mit ja und nein beantworten kann
Wie geht das?

Danke

Thomas
bastla
bastla 20.07.2007 um 18:50:16 Uhr
Goto Top
Hallo Tompazi!

Etwa so:
setlocal
set /p "Antwort=Dateien auf dem Stick loeschen (J/N)?_"  
if /i "%Antwort%"=="J" goto :Loeschen  
echo Keine Daten geloescht ...
goto :eof
:Loeschen
echo rd /s /q M:\ 
echo Daten wurden geloescht.
goto :eof
Solange das "echo" vor dem "rd ..." steht, wird der Löschbefehl zur Sicherheit nur angezeigt, aber nicht wirklich ausgeführt; wenn Du es entfernst, werden sämtliche Inhalte (auch die Unterverzeichnisse) von Laufwerk M: gelöscht!
Noch eine Anmerkung zu Deiner Frage nach dem Datum: Auch wenn es sich mit ausgeschriebenem Monatsnamen leichter liest, würde ich zum Format JJJJ-MM-TT raten, da Du so am leichtesten sortieren kannst. Erzielen kannst Du dieses Format mit
%date:~-4%-%date:~-7,2%-%date:~-10,2%

Grüße
bastla
Tompazi
Tompazi 20.07.2007 um 19:01:06 Uhr
Goto Top
Herzlichen Dank!

Grüße Thomas