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

Batch Shell Frage

Frage Entwicklung Batch & Shell

Mitglied: Pozelei

Pozelei (Level 1) - Jetzt verbinden

15.02.2011, aktualisiert 16.02.2011, 4333 Aufrufe, 22 Kommentare

Frage zu Batch & Shell

Hallo Community,
ich möchte wirklich gerne von euch wissen,wie ich eine Batch-Datei schreiben, die mir jeden Samstag einen neueren stand der .vhd extra eine kopie macht oder so und nicht immer die alte überschreibt wie mache ich das nun?

Würdet Ihr mir ggf. helfen? wäre echt nett, hier mein Script zum drüber schauen, was muss ich ändern? Möchte das 4 Sicherungen in Monat gemacht werden, also Jeden Samstag eine. Es sollte nahc möglichkeit keine überschrieben werden wie gehe ich vor & wie kann ich diese dann als Aufgabe einplanen, damit dies läuft ohne angemeldet zu sein?

REM Hyper-V Virtual Machine Backup

REM Shutdown virtual machines
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe c:\scripts\vmbackup\StartStopVms.ps1 c:\scripts\vmbackup\FABONS002Stop.txt 1

REM Copy virtual machines, /Y overwrites the file if it already exists
copy /Y "D:\Programme\Hyper-V\Virtual Hard DisksFABONS002.vhd" "E:\Backup\FABONS002\FABONS002.vhd"
"


REM Power on virtual machines
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe c:\scripts\vmbackup\StartStopVms.ps1 c:\scripts\vmbackup\FABONS002Start.txt 0

REM Finished!

Vielen Dank im vorraus, möchte nicht nerven!

Sorry
Mitglied: CondCPP
15.02.2011 um 14:16 Uhr
Hallo,
damit die einzelnen Sicherungen nicht überschrieben werden solltest du unterschiedliche Dateinamen für die Sicherungen verwenden.....das einfachste ist du baust das aktuelle Datum ein. Der Vorteil dabei ist du siehst auch gleich von wann die Sicherung ist.
Damit das ganze dann jeden Samstag startet kannst du das Script als Aufgabe in der Aufgabenverwaltung hinterlegen.
Bitte warten ..
Mitglied: Pozelei
15.02.2011 um 14:21 Uhr
Vielen Dank CondCPP, jedoch weiß ich dass es möglich ist aber welchen Befehl mus sich eingeben mit dem Datum, hatte shcon verschiedenes durchprobiert jedoch error erhalten, wenn ich das Script nun als Aufgabe plane für der Rechnre es nicht aus (wenn kein Benutzer angemeldet ist), wie kann ich das umgehen?

Grüße Pozelei

Könnte ich es so machen?

REM Hyper-V Virtual Machine Backup

REM Shutdown virtual machines
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe c:\scripts\vmbackup\StartStopVms.ps1

c:\scripts\vmbackup\FABONS002Stop.txt 1

REM Copy virtual machines, /Y overwrites the file if it already exists
copy /Y "D:\Programme\Hyper-V\Virtual Hard DisksFABONS002.vhd" "E:\Backup\FABONS002\FABONS002.vhd"
var datum = (time(now,yyyymmtt))
ren "E:\Backup\FABONS002\FABONS002.vhd" "E:\Backup\FABONS002\FABONS002&datum.vhd"



REM Power on virtual machines
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe c:\scripts\vmbackup\StartStopVms.ps1

c:\scripts\vmbackup\FABONS002Start.txt 0

REM Finished!
Bitte warten ..
Mitglied: Skyemugen
15.02.2011 um 15:13 Uhr
Aloha,

dein Datum erinnert mich an VBS ;)

Vielleicht gefällt dir %date% ja besser =)

greetz André

Edit: du willst ja es etwas anders wie ich sehe

01.
REM TT.MM.JJJJ soll zu JJJJMMTT 
02.
FOR /f "tokens=1-3 delims=." %%a in ("%date%") do Set Datum=%%c%%b%%a
EDIT²: Äh zu spät editiert, der Biberle war schneller *grml* ^.^
Bitte warten ..
Mitglied: Biber
15.02.2011 um 15:17 Uhr
Moin Pozelei,

willkommen im Forum.
Du vermischt in deinem Schnipsel Batchsprachelemente und VBSkript-Bröckchen.

Wenn du das für den CMD-Interpreter abgreifbare Datum über die Umgebungsvariable %date% umformatieren willst, ginge es so:
[Demo am CMD-Prompt]
01.
>echo %date% 
02.
15.02.2011 
03.
 
04.
>for /f "delims=. tokens=1-3" %i in ("%date%") do @echo set "mydate=%k%j%i" 
05.
set "mydate=20110215"
Wenn "dein" %date% anders aussieht, muss die Umformatiererei etwas angepasst werden.
Und wenn du dann irgendwas Brauchbares in deiner Variable %myDate% stehen hast, dann

STREICHE
ren "E:\Backup\FABONS002\FABONS002.vhd" "E:\Backup\FABONS002\FABONS002&datum.vhd"

SETZE
ren "E:\Backup\FABONS002\FABONS002.vhd" "FABONS002%mydate%.vhd"

Grüße
Biber
Bitte warten ..
Mitglied: Pozelei
15.02.2011 um 15:21 Uhr
Vielen Dank erstmal für die Wilkommengrüße, aber wie ist es nun richtig so?

REM Hyper-V Virtual Machine Backup, fehlt dort noch etwas?

REM Shutdown virtual machines
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe c:\scripts\vmbackup\StartStopVms.ps1 c:\scripts\vmbackup\FABONS002Stop.txt 1

REM Copy virtual machines, /Y overwrites the file if it already exists
copy "D:\Programme\Hyper-V\Virtual Hard DisksFABONS002.vhd" "E:\Backup\FABONS002\FABONS002.vhd"
set "mydate=20110215"
ren "E:\Backup\FABONS002\FABONS002.vhd" "E:\Backup\FABONS002\FABONS002%mydate%.vhd"



REM Power on virtual machines
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe c:\scripts\vmbackup\StartStopVms.ps1 c:\scripts\vmbackup\FABONS002Start.txt 0

REM Finished!
Bitte warten ..
Mitglied: Skyemugen
15.02.2011 um 15:24 Uhr
Zitat von Pozelei:
fehlt dort noch etwas?

Aloha,

joa, ohne for-Schleife = kein set mydate möglich ;)

Biberles Auszug war aus dem Prompt =) aber einbauen musst du
for /f "delims=. tokens=1-3" %%i in ("%date%") do set "mydate=%%k%%j%%i"
auf jeden Fall (dein set mydate kann raus, das war nur das echo) - %mydate% ist deine neue Datumsvariable (die du ja bereits eingebaut hast, wie ich sehe)

greetz André

P.S.: Warum überhaupt das ren? Kopiere doch gleich nach [Pfad\Datei%mydate%.Dateiendung]
Bitte warten ..
Mitglied: Pozelei
15.02.2011 um 15:29 Uhr
Sorry, aber ich versteh das nicht gnaz wo kommt nun dieser Befehl hin?

for /f "delims=. tokens=1-3" %%i in ("%date%") do set "mydate=%%k%%j%%i" ?
Bitte warten ..
Mitglied: Skyemugen
15.02.2011 um 15:32 Uhr
Aloha,

01.
@echo off & setlocal 
02.
REM Hyper-V Virtual Machine Backup 
03.
 
04.
REM Shutdown virtual machines 
05.
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe c:\scripts\vmbackup\StartStopVms.ps1 c:\scripts\vmbackup\FABONS002Stop.txt 1 
06.
 
07.
REM Datum TT.MM.JJJJ wird zu JJJJMMTT 
08.
for /f "delims=. tokens=1-3" %%i in ("%date%") do set "mydate=%%k%%j%%i" 
09.
 
10.
REM Copy virtual machines, /Y overwrites the file if it already exists 
11.
copy "D:\Programme\Hyper-V\Virtual Hard Disks\FABONS002.vhd" "E:\Backup\FABONS002\FABONS002_%mydate%.vhd" 
12.
 
13.
REM Power on virtual machines 
14.
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe c:\scripts\vmbackup\StartStopVms.ps1 c:\scripts\vmbackup\FABONS002Start.txt 0 
15.
 
16.
echo Finished! 
17.
pause
Anmerkung: Habe dein ren gestrichen, mir ergibt sich der Sinn nicht (und ein _ mit eingefügt, sieht doch besser aus als der reine Zahlensalat)

greetz André

edit: fehlendes \ hinzugefügt
Bitte warten ..
Mitglied: Pozelei
15.02.2011 um 15:36 Uhr
Wenn ich es übernehme, ruft er mir nur die txt Datein auf und macht nix :P
Bitte warten ..
Mitglied: Biber
15.02.2011 um 15:46 Uhr
Moin Pozelei,

ich kann zwar deine Fehlerbeschreibung nicht deuten, aber es sollte doch möglich sein, nur die beiden Befehle in Zeile 08 und Zeile 11 einzeln am CMD-Prompt oder inem proof-of-concept-Batch zu testen.
Da kann doch begrenzt wenig schiefgehen.

Ob nun davor und danach VMs gestartet oder Säcke mit Reis gestapelt werden... das hat doch mit dem Datumsumgefriemele nichts zu tun...

Grüße
Biber
Bitte warten ..
Mitglied: Pozelei
15.02.2011 um 15:47 Uhr
Wenn ich es übernehme, ruft er mir nur die txt Datein auf und macht nix :P

Edit: Habe den Fehler entdeckt hast ein \ vergessen bei dem Pfad hier:
01.
@echo off & setlocal  
02.
 
03.
REM Hyper-V Virtual Machine Backup  
04.
 
05.
REM Shutdown virtual machines  
06.
 
07.
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe c:\scripts\vmbackup\StartStopVms.ps1 c:\scripts\vmbackup\FABONS002Stop.txt 1  
08.
 
09.
REM Datum TT.MM.JJJJ wird zu JJJJMMTT  
10.
 
11.
for /f "delims=. tokens=1-3" %%i in ("%date%") do set "mydate=%%k%%j%%i" 
12.
 
13.
REM Copy virtual machines, /Y overwrites the file if it already exists  
14.
 
15.
copy "D:\Programme\Hyper-V\Virtual Hard Disks\FABONS002.vhd" "E:\Backup\FABONS002\FABONS002_%mydate%.vhd"  
16.
 
17.
REM Power on virtual machines  
18.
 
19.
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe c:\scripts\vmbackup\StartStopVms.ps1 c:\scripts\vmbackup\FABONS002Start.txt 0  
20.
 
21.
echo Finished!  
22.
 
23.
pause
Bitte warten ..
Mitglied: Skyemugen
15.02.2011 um 15:50 Uhr
Aloha,

nur ein kleiner Schönheitshinweis:

Ein Skript, das mit <code></code> getagged ist, liest sich angenehmer. =)

greetz André

P.S.: hab nur c&p, der Fehler war bereits in deinem Beitrag davor, aus dem ich kopierte
Bitte warten ..
Mitglied: Pozelei
15.02.2011 um 15:59 Uhr
Immer diese Copier & Paster :P
Naja läuft nun einbandfrei, vielen Dank an alle Beteiligten. Fast als gelöst makiert, wie kann ich es jetz noch verwirklichen, dass er die älteste von den 4 Backups löscht nach 4 Wochen?


Grüße Pozelei
Bitte warten ..
Mitglied: Skyemugen
15.02.2011 um 16:06 Uhr
Aloha,

am einfachsten mit delage32, der zwar mit Tagen arbeitet aber 28 Tage sind ja bekanntlich auch 4 Wochen =)

Sprich:
01.
"Laufwerk\Pfad_zur\delage32.exe" "Laufwerk\Pfad_der_zu_löschenden_Datei" 28 /parameter_siehe_Dokumentation
Dokumentation hier zu finden

greetz André
Bitte warten ..
Mitglied: Pozelei
15.02.2011 um 16:46 Uhr
Zitat von Skyemugen:
Aloha,

am einfachsten mit delage32, der zwar mit Tagen arbeitet aber 28 Tage sind ja
bekanntlich auch 4 Wochen =)

Sprich:
01.
> "Laufwerk\Pfad_zur\delage32.exe" "Laufwerk\Pfad_der_zu_löschenden_Datei" 28 
02.
> /parameter_siehe_Dokumentation
Dokumentation hier zu finden

greetz André


Wie baue ich das nun in mein Script ein ;)
Bitte warten ..
Mitglied: Pozelei
16.02.2011 um 11:14 Uhr
Wäre der Code so richtig?

01.
"C:\delage32\delage32.exe" "E:\Backup\FABONS002\FABONS002_%mydate%.vhd" 28
Am Anfang des Scripts eingetragen, da sagt er mir da ich es mal mit 1 statt 28 probiert habe zum test, delage32 - No files !
Bitte warten ..
Mitglied: Skyemugen
16.02.2011 um 11:33 Uhr
Aloha,

nur als Hinweis: Du solltest keine Datei angeben, sondern ein Verzeichnis ... und mit %mydate% ist beim Löschen schonmal gar nicht gut Kirschen essen - lies dir am Besten nochmal die Doku dazu durch und teste es irgendwo mit Testordnern & Dateien.

Learning by doing, man muss ja nicht alles vorkauen =) jedenfalls nicht solch simple Sachen

greetz André
Bitte warten ..
Mitglied: Pozelei
16.02.2011 um 11:51 Uhr
Aber wenn ich doch ein Verzeichnis hinten angebe löscht er mir das Komplette Verzeichnis oder leige ich dort falsch?

Grüße Pozelei
Bitte warten ..
Mitglied: Skyemugen
16.02.2011 um 11:55 Uhr
Aloha,

nur Dateien, die älter als die angegebenen Tage sind [das Verzeichnis dürfte ja immer jünger und nicht leer sein ...] (ich ging davon aus, dass dort auch nur diese Backups .vhs drin sind dann) - ansonsten könntest du auch
"C:\delage32\delage32.exe" "E:\Backup\FABONS002\FABONS002_*.vhd" 28
versuchen (ich sehe schon, du hast die Dokumentation (klick mich) immernoch nicht gelesen ...)

greetz André

P.S: Ohne Parameter wie /created oder /modified bin ich mir nicht 100% sicher, ob da viel passieren wird ... ansonsten /subonly kommt auch oftmals gut
P.P.S.:
DelAge32 löscht Dateien, und entfernt gegebenenfalls leere Ordner. DelAge32 wurde nicht konzipiert, um Verzeichnis-Strukturen in Abhängigkeit von der Alter des Ordners (unabhängig vom Alter der enthaltenen Dateien) zu löschen.
Bitte warten ..
Mitglied: Pozelei
16.02.2011 um 12:02 Uhr
Hatte es schon vor dir hinbekommen :D

Danke nochmals habe die Doku gelesen:
So funtzt es auch musste halt das Datum nach vorne verlegen mit Windows Date um es zu testen:
01.
"C:\delage32\delage32.exe" "C:\Users\offlimits\Desktop\Neuer Ordner\*.*" 1 /created /modified

PS: Kannst du mir ne seite zum lernen von Powershell empfehlen, soll demnächst die batch direkt in eine Powershell einbinden damit man nicht unnötig eine *bat bzw *cmd file hat!

Grüße Pozelei
Bitte warten ..
Mitglied: Skyemugen
16.02.2011 um 12:12 Uhr
Zitat von Pozelei:
PS: Kannst du mir ne seite zum lernen von Powershell empfehlen, soll demnächst die batch direkt in eine Powershell einbinden
damit man nicht unnötig eine *bat bzw *cmd file hat!

Aloha,

nope, kann ich nicht - nutze ich nicht brauche ich nicht

Aber, wenn die Sache hier von der Thematik her geklärt ist, kannst du ja mal ein grünes Häkchen setzen.

greetz André
Bitte warten ..
Mitglied: Pozelei
16.02.2011 um 12:20 Uhr
Häckchen wurde schon gesetzt (F5) Bitte

Grüße Pozelei
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
gelöst PDF-Stapelverarbeitung mit PDFTK (in batch, shell, powershell) (3)

Frage von brause1701 zum Thema Batch & Shell ...

Batch & Shell
gelöst Kl. Frage: Log-File schreiben per Batch (3)

Frage von Yauhun zum Thema Batch & Shell ...

Batch & Shell
gelöst Per FTP-Shell oder Batch in ein unbekanten Ordner wechseln (8)

Frage von Ducky2 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (32)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...