Batch Datei um zu entpacken und danach Copy+Paste

Texra

Cadet 2nd Year
Registriert
Aug. 2015
Beiträge
25
Hallo, ich hätte eine Frage zur Erstellung einer Batch Datei um es per Aufgabenplanung automatisiert zu machen. Ich habe alles in einem Paint Bild soweit erklärt, was ich genau möchte. Ist dies überhaupt möglich in nur einer Batch Datei oder braucht man da mehrere? Oder kann man das auch per Powershell machen und dann mit der Aufgabenplanung?

---
Hier noch ein Batch Befehl den ich benutzt habe. Funktioniert an sich gut, aber es moved die .Zip datei nur in den anderen Ordner ohne einzufügen (sprich ersetzen, glaub ich).

@echo off & setlocal
set source=STANDARDORDNER PFAD
set target=AUSGABEORDNER PFAD
for /f "delims=" %%a IN ('dir /B /S /A-D /O-D "%source%\*.zip"') DO @(copy "%%a" "%target%" & goto :end)
:end

Vielen dank schon mal für die Hilfe, wenn noch fragen sind... Gerne fragen. Hoffe mir kann jemand helfen, weil es sehr notwendig ist! :)



Bild:
Batchdatei.png
 
"copy" kannst du dir sparen, indem du mit 7z direkt den BackupOrdner2 als Output und den Überschreibungsparameter angibst. Ungefähr so:
Code:
7z.exe e *.zip -o%target% -aoa
 
Suche nach der neuesten Datei + Inhalt des Archives entpacken (Hier entpacken) + nach bestimmten Ordner entpacken:
Code:
@echo off

REM Pfad zum Backup-Ordner
set PFAD1=C:\MeinOrdner

REM Pfad zum Output-Ordner
set PATH2=C:\MeinOrdner2

REM Neueste Datei auslesen
for /f "tokens=*" %%a in ('dir /A:-D /B /O:-D /S "%PFAD1%"') do set NEW=%%a&& goto:n 
:n

REM Inhalt der neuesten Datei entpacken (Menüpunkt Hier entpacken)
"C:\Program Files\7-Zip\7z.exe" x "%NEW%" -o"%PATH2%"
 
Mit folgendem Code holst du dir die neuste ZIP Datei und entpackst sie mit 7Zip:

Code:
FOR /F "delims=|" %%I IN ('DIR "%source%\*.zip" /B /O:D') DO SET NewestFile=%%I
"%ProgramFiles%\7-Zip\7z.exe" x -y -o"%source%" "%source%\%NewestFile%"

Den entpackten Ordner kannst du dann kopieren, glaub Parameter /y würde dir da helfen um die Abfrage beim Ersetzen zu unterdrücken.

Wenn alles in einer Zeile sein muss, du kannst mehrere Commands mit & bzw. && verknüpfen und mit | pipen.
 
ryan_blackdrago schrieb:
Suche nach der neuesten Datei + Inhalt des Archives entpacken (Hier entpacken) + nach bestimmten Ordner entpacken:
Code:
@echo off

REM Pfad zum Backup-Ordner
set PFAD1=C:\MeinOrdner

REM Pfad zum Output-Ordner
set PATH2=C:\MeinOrdner2

REM Neueste Datei auslesen
for /f "tokens=*" %%a in ('dir /A:-D /B /O:-D /S "%PFAD1%"') do set NEW=%%a&& goto:n
:n

REM Inhalt der neuesten Datei entpacken (Menüpunkt Hier entpacken)
"C:\Program Files\7-Zip\7z.exe" x "%NEW%" -o"%PATH2%"
Hmmm, also ich hab diesen Code mal ausprobiert... aber iwie passiert da nichts. Keine Ahnung ob ich was falsch gemacht habe. Kenne mich halt mit Befehlen/Codes nicht gut aus. Hab halt im Netz gesehen, dass es eig mit ner .bat Datei gehen sollte. Muss man bei diesem Code die 4 REM Texte weglassen, ne oder?

Also mein Code sieht so aus und hab halt den Code in ein Textdokument eingefügt, bearbeitet & als .bat abgespeichert und ausgeführt.

@echo off

REM Pfad zum Backup-Ordner
set PFAD1=C:\Users\ruthm\Downloads\test1

REM Pfad zum Output-Ordner
set PATH2=C:\Users\ruthm\Downloads\test2

REM Neueste Datei auslesen
for /f "tokens=*" %%a in ('dir /A:-D /B /O:-D /S "%PFAD1%"') do set NEW=%%a&& goto:n
:n

REM Inhalt der neuesten Datei entpacken (Menüpunkt Hier entpacken)
"C:\Program Files\7-Zip\7z.exe" x "%NEW%" -o"%PATH2%"


Sorry, wenn ich zu inkompetent klinge. Bin ich ja auch eigentlich, was das angeht.:rolleyes: Aber wir bekommen es zu 100% hin, bin ich mir sicher. :D Ihr müsst's halt einfach so erklären als wäre ich 10 Jahre alt wäre, dann krieg ichs auch hin.. Schritt für Schritt. Aber danke schon mal für die zahlreichen Antworten, hammer!
 
Zuletzt bearbeitet:
Versuchs mal so (Natürlich noch die Pfade anpassen)

Code:
powershell  "Get-ChildItem C:\temp\*.zip | sort LastWriteTime | select -first 1 | Expand-Archive -DestinationPath d:\ziptest  -Force"

Wenn du dass in die bat datei schreibst wird powershell aufgerufen und dann die Befehlszeile ausgeführt

Get-ChildItem c:\temp\*.zip liefert alle zips in c:\temp
sort LastWriteTime sortiert nach Datum des letzten Schreibzugriffs - neueste zuerst
select -first 1 holt sich den ersten Einstrag
Expand-Archive -DestinationPath d:\ziptest -Force expandiert diese Zip Datei in den Ordner d:\ziptest


Wenn man sich erst einmal etwas mit powershell beschäftigt hat ist Scripting damit deutlich komfortabler
 
Zurück
Oben