Ordner mit Batchdatei erstellen
Hallo zusammen,
ich habe folgendes im Sinn!
Daten werden mit einer Batchdatei vom Server geholt und in einen Unterordner vom Hauptordner kopiert!
Meine Daten (local auf meinem PC) liegen auf H:\SQL Backup\befehle.ini und H:\SQL Backup\batch.bat
batch.bat:
@echo off
md %date%
xcopy befehle.ini %date%
cd %date%
ftp -s:befehle.ini
del befehle.ini
exit
Wie bringe ich die Batch-Datei dazu einen Ordner mit dem Jahr und darin einen Ordner mit dem Monat zu erzeugen?
Den Ordner mit dem Tag habe ich ja mit %date% erstellt!
Bedanke mich für Eure Hilfe!
Gruss Grazioli
ich habe folgendes im Sinn!
Daten werden mit einer Batchdatei vom Server geholt und in einen Unterordner vom Hauptordner kopiert!
Meine Daten (local auf meinem PC) liegen auf H:\SQL Backup\befehle.ini und H:\SQL Backup\batch.bat
batch.bat:
@echo off
md %date%
xcopy befehle.ini %date%
cd %date%
ftp -s:befehle.ini
del befehle.ini
exit
Wie bringe ich die Batch-Datei dazu einen Ordner mit dem Jahr und darin einen Ordner mit dem Monat zu erzeugen?
Den Ordner mit dem Tag habe ich ja mit %date% erstellt!
Bedanke mich für Eure Hilfe!
Gruss Grazioli
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 133664
Url: https://administrator.de/contentid/133664
Ausgedruckt am: 05.11.2024 um 13:11 Uhr
28 Kommentare
Neuester Kommentar
Hallo Grazioli,
das Verzeichnis könntest du so erstellen:
Grüße
rubberman
<edit> Den Fehlerteufel umgebracht</edit>
das Verzeichnis könntest du so erstellen:
@echo off &setlocal
set Root=C:\irgendwo\SQL Backup
chcp 1252>nul
set Monat01=Januar
set Monat02=Februar
set Monat03=März
set Monat04=April
set Monat05=Mai
set Monat06=Juni
set Monat07=Juli
set Monat08=August
set Monat09=September
set Monat10=Oktober
set Monat11=November
set Monat12=Dezember
chcp 850>nul
for /f "delims=. tokens=2,3" %%a in ("%date%") do set "M=%%a" &set "Y=%%b"
call set M=%%Monat%M%%%
pushd "%Root%"
md "%Y%\%M%\%date%"
popd
Grüße
rubberman
<edit> Den Fehlerteufel umgebracht</edit>
Hallo Grazioli,
habe mir gerade deinen ersten Post noch mal genauer angeschaut. Gehen wir davon aus, dass dein Batch und die *ini im Verzeichnis "H:\SQL Backup" liegen.
Ob die Geschichte mit den zwei FTP Zugängen so funktioniert, kann ich nicht sagen. Dazu habe ich zu wenig Erfahrung mit FTP.
Grüße
rubberman
habe mir gerade deinen ersten Post noch mal genauer angeschaut. Gehen wir davon aus, dass dein Batch und die *ini im Verzeichnis "H:\SQL Backup" liegen.
@echo off &setlocal
chcp 1252>nul
set Monat01=Januar
set Monat02=Februar
set Monat03=März
set Monat04=April
set Monat05=Mai
set Monat06=Juni
set Monat07=Juli
set Monat08=August
set Monat09=September
set Monat10=Oktober
set Monat11=November
set Monat12=Dezember
chcp 850>nul
for /f "delims=. tokens=2,3" %%a in ("%date%") do set "M=%%a" &set "Y=%%b"
call set M=%%Monat%M%%%
cd /d "H:\SQL Backup"
md "%Y%\%M%\%date%"
copy "G:\Hostpoint Backup\SQL Backup\befehle.ini" "%Y%\%M%\%date%\befehle.ini"
pushd "%Y%\%M%\%date%"
ftp -s:befehle.ini
del befehle.ini
popd
Ob die Geschichte mit den zwei FTP Zugängen so funktioniert, kann ich nicht sagen. Dazu habe ich zu wenig Erfahrung mit FTP.
Grüße
rubberman
Es wird doch unter Win 7 noch erlaubt sein Punkte im Verzeichnisnamen zu haben?! Könntest du so ein Verzeichnis händisch anlegen?
How ever. Möglich wäre ja auch noch nur den Tag als Verzeichnisname zu nutzen, Jahr und Monat hast du ja bereits im Pfad.
Grüße
rubberman
How ever. Möglich wäre ja auch noch nur den Tag als Verzeichnisname zu nutzen, Jahr und Monat hast du ja bereits im Pfad.
@echo off &setlocal
chcp 1252>nul
set Monat01=Januar
set Monat02=Februar
set Monat03=März
set Monat04=April
set Monat05=Mai
set Monat06=Juni
set Monat07=Juli
set Monat08=August
set Monat09=September
set Monat10=Oktober
set Monat11=November
set Monat12=Dezember
chcp 850>nul
for /f "delims=. tokens=1-3" %%a in ("%date%") do set "D=%%a" &set "M=%%b" &set "Y=%%c"
call set M=%%Monat%M%%%
cd /d "G:\Hostpoint_Backup\SQL_Backup\"
md "%Y%\%M%\%D%"
copy "G:\Hostpoint_Backup\SQL_Backup\befehle_grazioli.ini" "%Y%\%M%\%D%\befehle_grazioli.ini"
pushd "%Y%\%M%\%D%"
ftp -s:befehle_grazioli.ini
popd
Grüße
rubberman
Moin Grazioli,
es könnte sein, dass du durch unbeabsichtigte Leerzeichen [z.b. hinter den "Set Monat01=Januar " und dem "Call Set .... "]
Probleme beim Anlegen des Tages-Verzeichnisses bekommst.
Versuche es so:
[die neue Variable %sqlroot% ist nur zur Reduzierung von Tippfehlern... lieber dieses Verzeichnis an EINER Stelle eintippen]
Grüße
Biber
es könnte sein, dass du durch unbeabsichtigte Leerzeichen [z.b. hinter den "Set Monat01=Januar " und dem "Call Set .... "]
Probleme beim Anlegen des Tages-Verzeichnisses bekommst.
Versuche es so:
@echo off &setlocal
chcp 1252>nul
Set "Sqlroot="G:\Hostpoint_Backup\SQL_Backup"
set "Monat01=Januar"
set "Monat02=Februar"
set "Monat03=März"
set "Monat04=April"
set "Monat05=Mai"
set "Monat06=Juni"
set "Monat07=Juli"
set "Monat08=August"
set "Monat09=September"
set "Monat10=Oktober"
set "Monat11=November"
set "Monat12=Dezember"
chcp 850>nul
for /f "delims=. tokens=2,3" %%a in ("%date%") do set "M=%%a" & set "Y=%%b"
call set "M=%%Monat%M%%%"
REM ....FOR what...auskommentiert cd /d "%sqlRoot%"
md "%sqlroot%\%Y%\%M%\%date%"
copy "%sqlRoot%\befehle_grazioli.ini" "%sqlroot%\%Y%\%M%\%date%\befehle_grazioli.ini"
pushd "%sqlRoot%\%Y%\%M%\%date%"
ftp -s:befehle_grazioli.ini
popd
Grüße
Biber
Moin rubberman,
... es ist ein bisschen Augenwischerei,
Insofern brachte das Streben " Also nur zur Sicherheit." eher eine trügerische Sicherheit...
Grüße
Biber
Zitat von @rubberman:
> Zitat von @Biber:
> ----
> REM ....FOR what...auskommentiert cd /d "%sqlRoot%"
>
Mir war nicht so recht klar, wo der Batch liegt. Also nur zur Sicherheit.
ja, aber.....> Zitat von @Biber:
> ----
> REM ....FOR what...auskommentiert cd /d "%sqlRoot%"
>
Mir war nicht so recht klar, wo der Batch liegt. Also nur zur Sicherheit.
... es ist ein bisschen Augenwischerei,
- ZUERST mit "Cd /d irgendwohin" Laufwerk und Pfad zu wechseln
- sich DANN zwei Zeilen weiter mit "PUSHD irgendwohin" das jetzt aktuelle Lw/Verz zu merken und es zu verlassen
- und AM ENDE mit "POPD" wieder "zurückzukehren" nach..... ja wohin denn? Nicht dorthin, wo der Batch begann.
Insofern brachte das Streben " Also nur zur Sicherheit." eher eine trügerische Sicherheit...
Grüße
Biber
Hallo Biber,
du hast Recht, sauber ist das nicht.
Ich konkretisiere:
Die Zeile war ursprünglich nicht im Code und ist mit einer Änderung (19.01.2010, 10:59:17) eingeflossen. Sich beim Erstellen der Ordnerstruktur im richtigen Verzeichnis zu befinden, ist IMHO für das Vorhaben entscheidender, als nach POPD wieder im Ursprungsverzeichnis zu landen (Batch-Ende ). Wo nun was liegt, ist mir immer noch nicht ganz klar. Die ursprünglich genannten Pfade und das Posting von 19.01.2010, 05:35:50 Uhr widersprechen sich nach meinem Verständnis.
Grüße
rubberman
du hast Recht, sauber ist das nicht.
Ich konkretisiere:
Die Zeile war ursprünglich nicht im Code und ist mit einer Änderung (19.01.2010, 10:59:17) eingeflossen. Sich beim Erstellen der Ordnerstruktur im richtigen Verzeichnis zu befinden, ist IMHO für das Vorhaben entscheidender, als nach POPD wieder im Ursprungsverzeichnis zu landen (Batch-Ende ). Wo nun was liegt, ist mir immer noch nicht ganz klar. Die ursprünglich genannten Pfade und das Posting von 19.01.2010, 05:35:50 Uhr widersprechen sich nach meinem Verständnis.
Grüße
rubberman
@rubberman
[genauso OT]
Ich weiß zwar überhaupt nicht, wozu man(n)
<code>
</code>
brauchen könnte - aber mir gefällt's jedenfalls auch ...
[/genauso OT]
Grüße
bastla
[genauso OT]
Ich weiß zwar überhaupt nicht, wozu man(n)
<code>
</code>
brauchen könnte - aber mir gefällt's jedenfalls auch ...
[/genauso OT]
Grüße
bastla
Hallo Grazioli,
das entwickelt sich ja zur "Unendlichen Geschichte"
Erstelle folgenden Two-Liner im neu erstellten Verzeichnis:
Und nun schau mal, ob ftp irgendwelche Meldungen bringt.
BTW Ich weiß nicht, wie die *.ini ursprünglich erstellt wird. Auch hier können Leerzeichen am Zeilenende zu Fehlern führen!
Grüße
rubberman
das entwickelt sich ja zur "Unendlichen Geschichte"
Erstelle folgenden Two-Liner im neu erstellten Verzeichnis:
ftp -s:befehle_grazioli.ini
pause
BTW Ich weiß nicht, wie die *.ini ursprünglich erstellt wird. Auch hier können Leerzeichen am Zeilenende zu Fehlern führen!
Grüße
rubberman
Moin Grazioli,
sorry, die Ursache für die letzten Holprigkeiten war ein Tippfehler von mir in der Zeile 3 (die neue Variable %sqlroot%
die Zeile enthält 3 Anführungszeichen statt 2, was in der Folge natürlich zu dem Fehler beim Copy führt.
Richtiger wäre gewesen:
Tut mir Leid, hatte ich übersehen.
Grüße
Biber
sorry, die Ursache für die letzten Holprigkeiten war ein Tippfehler von mir in der Zeile 3 (die neue Variable %sqlroot%
die Zeile enthält 3 Anführungszeichen statt 2, was in der Folge natürlich zu dem Fehler beim Copy führt.
Richtiger wäre gewesen:
Set "sqlroot=G:\Hostpoint_Backup\SQL_Backup"
Tut mir Leid, hatte ich übersehen.
Grüße
Biber