Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Ordner mit Batchdatei erstellen

Frage Entwicklung Batch & Shell

Mitglied: Grazioli

Grazioli (Level 1) - Jetzt verbinden

17.01.2010, aktualisiert 22.01.2010, 5957 Aufrufe, 28 Kommentare

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
8d7d003ad01cf779328d9e53668e4d67 - Klicke auf das Bild, um es zu vergrößern

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
28 Antworten
Mitglied: rubberman
17.01.2010 um 20:33 Uhr
Hallo Grazioli,

das Verzeichnis könntest du so erstellen:
01.
@echo off &setlocal 
02.
set Root=C:\irgendwo\SQL Backup 
03.
chcp 1252>nul 
04.
set Monat01=Januar 
05.
set Monat02=Februar 
06.
set Monat03=März 
07.
set Monat04=April 
08.
set Monat05=Mai 
09.
set Monat06=Juni 
10.
set Monat07=Juli 
11.
set Monat08=August 
12.
set Monat09=September 
13.
set Monat10=Oktober 
14.
set Monat11=November 
15.
set Monat12=Dezember 
16.
chcp 850>nul 
17.
for /f "delims=. tokens=2,3" %%a in ("%date%") do set "M=%%a" &set "Y=%%b" 
18.
call set M=%%Monat%M%%% 
19.
pushd "%Root%" 
20.
md "%Y%\%M%\%date%" 
21.
popd
Grüße
rubberman

<edit> Den Fehlerteufel umgebracht</edit>
Bitte warten ..
Mitglied: mayho33
17.01.2010 um 22:12 Uhr
Hi!

so eventuell?

md %date%\%date:~-7,2%

Grüße

Mayho
Bitte warten ..
Mitglied: Grazioli
18.01.2010 um 17:33 Uhr
Hallo,

und danke für Eure Antworten!

Wo muss ich jetzt meinen Code noch einfügen?

01.
@echo off 
02.
md %date% 
03.
xcopy befehle.ini %date% 
04.
cd %date% 
05.
ftp -s:befehle.ini 
06.
del befehle.ini 
07.
exit
Der Code von Oben geht, bis zum Monat, aber es erstellt mir auch nicht den Ordner Tag und kopiert mir die befehle.ini nicht ins Verzeichniss!

Und wie kann ich jetzt noch zwei FTP Zugänge mit meiner befehle.ini öffnen und schliessen?
01.
open ftp.web.ch 
02.
grazioli@web.ch 
03.
test123 
04.
get db-backup/grazioli_test1.sql 
05.
 
06.
open ftp.web5.ch 
07.
grazioli@web5.ch 
08.
test123456 
09.
get db-backup/grazioli_test2.sql 
10.
bye

Gruss Grazioli
Bitte warten ..
Mitglied: rubberman
18.01.2010 um 19:08 Uhr
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.

01.
@echo off &setlocal 
02.
chcp 1252>nul 
03.
set Monat01=Januar 
04.
set Monat02=Februar 
05.
set Monat03=März 
06.
set Monat04=April 
07.
set Monat05=Mai 
08.
set Monat06=Juni 
09.
set Monat07=Juli 
10.
set Monat08=August 
11.
set Monat09=September 
12.
set Monat10=Oktober 
13.
set Monat11=November 
14.
set Monat12=Dezember 
15.
chcp 850>nul 
16.
for /f "delims=. tokens=2,3" %%a in ("%date%") do set "M=%%a" &set "Y=%%b" 
17.
call set M=%%Monat%M%%% 
18.
cd /d "H:\SQL Backup" 
19.
md "%Y%\%M%\%date%" 
20.
copy "G:\Hostpoint Backup\SQL Backup\befehle.ini" "%Y%\%M%\%date%\befehle.ini" 
21.
pushd "%Y%\%M%\%date%" 
22.
ftp -s:befehle.ini 
23.
del befehle.ini 
24.
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
Bitte warten ..
Mitglied: Grazioli
18.01.2010 um 20:52 Uhr
Hallo,

es geht einfach nicht richtig!

Den Ordner mit dem Datum und das copy von befehle.ini in den Ordner Tag geht nicht!

Es wird den Ordner Tag garnicht erstellt! Es werden alle sql-DB im Verzeichnis "H:\SQL Backup" erstellt!

Gruss Grazioli
Bitte warten ..
Mitglied: rubberman
18.01.2010 um 21:23 Uhr
Hallo Grazioli,

hab mal Zeile 22 auskommentiert
01.
:: del befehle.ini
um zu sehen, ob die *.ini angekommen ist und (zumindest bei mir) funktioniert das soweit.
\2010\Januar\18.01.2010\befehle.ini wird angelegt.
Weiß aus der Ferne nicht woran das liegen könnte.

Grüße
rubberman
Bitte warten ..
Mitglied: Grazioli
19.01.2010 um 05:35 Uhr
Hallo,

habe Deine Postings nochmals durchgelesen, und fand den Fehler:

Die Daten liegen nicht im Verzeichnis "H:\SQL Backup" sondern im Verzeichniss "G:\Hostpoint Backup\SQL Backup"!

Darum kopiert es mir die ini nicht dort hin! Schreibfehler von mir!

Gruss Grazioli
Bitte warten ..
Mitglied: rubberman
19.01.2010 um 10:59 Uhr
Hallo Grazioli,

hab mal im Post vom 18.01.2010, 19:08:37 geändert. So sollte es dann hoffentlich endgültig funktionieren. Schau dir die Angaben in Zeile 18 und 20 noch mal an.

Grüße
rubberman
Bitte warten ..
Mitglied: Grazioli
20.01.2010 um 20:54 Uhr
Hallo nochmals,

kann es sein das mir mein Win7 einen strich durch mein Vorhaben macht? Ich habe gerade gemerkt, das ich nirgends nur erwähnt hätte, was für ein System ich habe.

Mein Code sieht so aus:
01.
@echo off &setlocal  
02.
chcp 1252>nul  
03.
set Monat01=Januar  
04.
set Monat02=Februar  
05.
set Monat03=März  
06.
set Monat04=April  
07.
set Monat05=Mai  
08.
set Monat06=Juni  
09.
set Monat07=Juli  
10.
set Monat08=August  
11.
set Monat09=September  
12.
set Monat10=Oktober  
13.
set Monat11=November  
14.
set Monat12=Dezember  
15.
chcp 850>nul  
16.
for /f "delims=. tokens=2,3" %%a in ("%date%") do set "M=%%a" &set "Y=%%b"  
17.
call set M=%%Monat%M%%%  
18.
cd /d "G:\Hostpoint_Backup\SQL_Backup\" 
19.
md "%Y%\%M%\%date%"  
20.
copy "G:\Hostpoint_Backup\SQL_Backup\befehle_grazioli.ini" "%Y%\%M%\%date%\befehle_grazioli.ini" 
21.
pushd "%Y%\%M%\%date%" 
22.
ftp -s:befehle_grazioli.ini  
23.
popd
Habe auch versucht, keine Abstände mehr in den Ordnernamen zu haben, darum auch _!

Es erstellt die SQL-DB in G:\Hostpoint_Backup\SQL_Backup und den Ordner Jahr, Monat erstellt es mir auch.
Es erstellt mir einfach den Ordner mit dem Datum nicht, und kopiert auch die ini nicht dort hin!

Danke Gruss Grazioli
Bitte warten ..
Mitglied: rubberman
20.01.2010 um 21:07 Uhr
Hallo Grazioli,

habe nur XP zum testen.
was spuckt denn ein
01.
echo %date%
in der Kommandozeile für ein Format bei dir aus?

Grüße
rubberman

PS: Code Tags
<code>
</code>
Bitte warten ..
Mitglied: Grazioli
20.01.2010 um 21:13 Uhr
im cmd erhalte ichdas Datum so: 20.01.2010
Bitte warten ..
Mitglied: rubberman
20.01.2010 um 21:35 Uhr
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.
01.
@echo off &setlocal 
02.
chcp 1252>nul 
03.
set Monat01=Januar 
04.
set Monat02=Februar 
05.
set Monat03=März 
06.
set Monat04=April 
07.
set Monat05=Mai 
08.
set Monat06=Juni 
09.
set Monat07=Juli 
10.
set Monat08=August 
11.
set Monat09=September 
12.
set Monat10=Oktober 
13.
set Monat11=November 
14.
set Monat12=Dezember 
15.
chcp 850>nul 
16.
for /f "delims=. tokens=1-3" %%a in ("%date%") do set "D=%%a" &set "M=%%b" &set "Y=%%c" 
17.
call set M=%%Monat%M%%% 
18.
cd /d "G:\Hostpoint_Backup\SQL_Backup\" 
19.
md "%Y%\%M%\%D%" 
20.
copy "G:\Hostpoint_Backup\SQL_Backup\befehle_grazioli.ini" "%Y%\%M%\%D%\befehle_grazioli.ini" 
21.
pushd "%Y%\%M%\%D%" 
22.
ftp -s:befehle_grazioli.ini 
23.
popd
Grüße
rubberman
Bitte warten ..
Mitglied: Biber
20.01.2010 um 21:45 Uhr
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:
01.
@echo off &setlocal  
02.
chcp 1252>nul  
03.
Set "Sqlroot="G:\Hostpoint_Backup\SQL_Backup" 
04.
set "Monat01=Januar" 
05.
set "Monat02=Februar" 
06.
set "Monat03=März" 
07.
set "Monat04=April" 
08.
set "Monat05=Mai" 
09.
set "Monat06=Juni" 
10.
set "Monat07=Juli" 
11.
set "Monat08=August" 
12.
set "Monat09=September" 
13.
set "Monat10=Oktober" 
14.
set "Monat11=November" 
15.
set "Monat12=Dezember" 
16.
chcp 850>nul  
17.
for /f "delims=. tokens=2,3" %%a in ("%date%") do set "M=%%a" & set "Y=%%b"  
18.
call set "M=%%Monat%M%%%" 
19.
REM ....FOR what...auskommentiert cd /d "%sqlRoot%" 
20.
md "%sqlroot%\%Y%\%M%\%date%"  
21.
copy "%sqlRoot%\befehle_grazioli.ini" "%sqlroot%\%Y%\%M%\%date%\befehle_grazioli.ini" 
22.
pushd "%sqlRoot%\%Y%\%M%\%date%" 
23.
ftp -s:befehle_grazioli.ini  
24.
popd
[die neue Variable %sqlroot% ist nur zur Reduzierung von Tippfehlern... lieber dieses Verzeichnis an EINER Stelle eintippen]

Grüße
Biber
Bitte warten ..
Mitglied: rubberman
20.01.2010 um 21:58 Uhr
@Biber
über die Leerzeichen hätte ich auch stolpern können. Mglw. hast du Recht.

Zitat von Biber:
REM ....FOR what...auskommentiert cd /d "%sqlRoot%"

Mir war nicht so recht klar, wo der Batch liegt. Also nur zur Sicherheit.

Grüße
rubberman
Bitte warten ..
Mitglied: Biber
20.01.2010 um 22:08 Uhr
Moin rubberman,

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.....
... 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
Bitte warten ..
Mitglied: rubberman
20.01.2010 um 23:24 Uhr
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
Bitte warten ..
Mitglied: Grazioli
21.01.2010 um 05:41 Uhr
Also ich habe jetzt die genauen Pfade nochmals angehängt!

483b1c8dea24d1b8292544e09c779993 - Klicke auf das Bild, um es zu vergrößern
7b5b0f5399b9852c15b0adc908886db9 - Klicke auf das Bild, um es zu vergrößern
Bitte warten ..
Mitglied: 60730
21.01.2010 um 11:20 Uhr
Zitat von rubberman:
PS: Code Tags
<code>
</code>


[OT]
@rubberman - die "Schreibweise gut - auf die muß man(n) erst mal kommen Merke ich mir
[/OT]
Bitte warten ..
Mitglied: bastla
21.01.2010 um 14:48 Uhr
@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
Bitte warten ..
Mitglied: rubberman
21.01.2010 um 16:39 Uhr
Hallo Grazioli,

was ist dann mit Bibers Version?
Schon probiert?

Grüße
rubberman
Bitte warten ..
Mitglied: rubberman
21.01.2010 um 16:56 Uhr
[auch noch mal OT]
Vielen Dank für die Blumen, Euch beiden.
Zu posten, was man schreiben muss damit es so aussieht, wie es aussieht, verkneife ich mir aber jetzt...
[/auch noch mal OT]

Grüße
rubberman
Bitte warten ..
Mitglied: Grazioli
21.01.2010 um 17:36 Uhr
Zitat von Biber:

REM ....FOR what...auskommentiert cd /d "%sqlRoot%"

was ist mit dem gemeint?
Bitte warten ..
Mitglied: bastla
21.01.2010 um 18:22 Uhr
Hallo Grazioli!
was ist mit dem gemeint?
Dass Dein Test, wenn Du ihn dann einmal in Angriff nimmst, mit oder ohne diese Zeile gleich ausgehen wird ...

Grüße
bastla
Bitte warten ..
Mitglied: Grazioli
21.01.2010 um 18:32 Uhr
Der Test ist soweit, dass es mir den Ordner mit dem Tag jetzt erstellt!

Die befehle_grazioli.ini aber nicht ausführt!
Bitte warten ..
Mitglied: rubberman
21.01.2010 um 20:01 Uhr
Hallo Grazioli,

das entwickelt sich ja zur "Unendlichen Geschichte"

Erstelle folgenden Two-Liner im neu erstellten Verzeichnis:
01.
ftp -s:befehle_grazioli.ini 
02.
pause
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
Bitte warten ..
Mitglied: Grazioli
22.01.2010 um 19:15 Uhr
Also, folgendes erhalte ich jetzt:

Bild gelöscht, nach hinweis auf private Daten!


Grues Grazioli
Bitte warten ..
Mitglied: Grazioli
22.01.2010 um 20:14 Uhr
Ok, jetzt geht es:

01.
@echo off &setlocal 
02.
chcp 1252>nul 
03.
set "Monat01=Januar" 
04.
set "Monat02=Februar" 
05.
set "Monat03=März" 
06.
set "Monat04=April" 
07.
set "Monat05=Mai" 
08.
set "Monat06=Juni" 
09.
set "Monat07=Juli" 
10.
set "Monat08=August" 
11.
set "Monat09=September" 
12.
set "Monat10=Oktober" 
13.
set "Monat11=November" 
14.
set "Monat12=Dezember" 
15.
chcp 850>nul 
16.
for /f "delims=. tokens=2,3" %%a in ("%date%") do set "M=%%a" & set "Y=%%b" 
17.
call set "M=%%Monat%M%%%" 
18.
cd /d "G:\Hostpoint_Backup\SQL_Backup" 
19.
md "G:\Hostpoint_Backup\SQL_Backup\%Y%\%M%\%date%" 
20.
copy "G:\Hostpoint_Backup\SQL_Backup\befehle_fw.ini" G:\Hostpoint_Backup\SQL_Backup\%Y%\%M%\%date%\befehle_fw.ini 
21.
pushd "G:\Hostpoint_Backup\SQL_Backup\%Y%\%M%\%date%" 
22.
ftp -s:befehle_fw.ini 
23.
del befehle_fw.ini 
24.
 
25.
copy "G:\Hostpoint_Backup\SQL_Backup\befehle_grazioli.ini" G:\Hostpoint_Backup\SQL_Backup\%Y%\%M%\%date%\befehle_grazioli.ini 
26.
pushd "G:\Hostpoint_Backup\SQL_Backup\%Y%\%M%\%date%" 
27.
ftp -s:befehle_grazioli.ini 
28.
del befehle_grazioli.ini 
29.
exit
Danke allen für die Hilfe!

Gruss Grazioli
Bitte warten ..
Mitglied: Biber
22.01.2010 um 23:44 Uhr
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:

01.
Set  "sqlroot=G:\Hostpoint_Backup\SQL_Backup"
Tut mir Leid, hatte ich übersehen.

Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Batch & Shell
Ordner erstellen ll Datei hinein kopieren (1)

Frage von heyalice zum Thema Batch & Shell ...

Batch & Shell
Batch: .rar-Pakete automatisch Ordner erstellen und verschieben (2)

Frage von BowserMD zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Ordner erstellen und verschieben (6)

Frage von Fromeonly zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...