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

Datei aus txt verschieben per batch

Frage Entwicklung Batch & Shell

Mitglied: zensbert

zensbert (Level 1) - Jetzt verbinden

08.05.2008, aktualisiert 15.07.2008, 4604 Aufrufe, 14 Kommentare

Hallo,
habe eine Batch geschrieben, diese soll rar dateien die in ner txt stehen verschieben..
klappt soweit, esseidenn es sind part1.rar, part2.rar usw..

in der rars.txt steht sowas:

Pfad\datei.rar
oder
Pfad\datei1.part1.rar


in der Batch:

for /f "delims=" %%i in (Rars.txt) do move /Y %%i D:\Download\


wenn ich das ausführe wird immer nur die datei.rar kopiert oder die datei1.part1.rar
aber folgedateien wie (datei1.part2.rar) verschiebt es nicht mit,
wäre aber praktisch..
jemand eine idee?

danke
Mitglied: bastla
08.05.2008 um 15:45 Uhr
Hallo chizophren!

Wenn Du in "rars.txt" immer nur die erste Schreibweise (also "Pfad\datei.rar") verwendest, könntest Du es so versuchen (ungetesteter Ansatz):
01.
for /f "delims=" %%i in (Rars.txt) do move "%%i" D:\Download\ 2>nul & move "%%~dpni.part?%%~xi" D:\Download\ 2>nul
Das "/Y" beim "move" kannst Du Dir in einem Batch übrigens schenken.

Grüße
bastla
Bitte warten ..
Mitglied: zensbert
08.05.2008 um 16:05 Uhr
Ehrlich gesagt verschiebt der so gar nichts mehr...
in der txt steht immer nur part1 egal wieviel andere parts mit gleichen namen existieren..

vll. hilft das ja;
"d:\Download\GrosseRARdatei.part1.rar"

aber schonmal danke..
Bitte warten ..
Mitglied: bastla
08.05.2008 um 16:53 Uhr
Hallo chizophren!

Gar nichts mehr ist dann ja echt wenig ...

Wie erwähnt, setzt die obige Variante einen Eintrag ohne enthaltenes ".part" voraus (auch wenn es mehrere Teile sind) - daher sollte in der "rars.txt" stehen:
01.
D:\Irgend ein Pfad\GrosseRARdatei.rar
Wenn dann noch anstelle des "?" ein "*" verwendet wird, sollte es so eigentlich klappen:
01.
for /f "delims=" %%i in (Rars.txt) do move "%%i" D:\Download\ 2>nul & move "%%~dpni.part*%%~xi" D:\Download\ 2>nul
Da es ja nur eine Zeile ist, kannst Du diese auch direkt aus der Konsole testen - dann aber nur jeweils ein "%"-Zeichen schreiben.

Grüße
bastla
Bitte warten ..
Mitglied: zensbert
08.05.2008 um 19:05 Uhr
hi,

ja, aber das problem ist, dass diese einträge automatisiert erstellt werden, also nicht von hand.
ich sag mal so grob worums geht,

-winrar entpackt per batch archive mit meist mehrern parts und schreibt erfolgreich
entpackte archiv in o.g. format in txt
-die erfolgreich entpackten sollen von ordner a nach ordner b verschoben werden

das is schon alles..


gruß..
Bitte warten ..
Mitglied: bastla
08.05.2008 um 20:07 Uhr
Hallo chizophren!

Dann eben so:
01.
@echo off & setlocal 
02.
set "Source=D:\rars.txt" 
03.
set "Target=D:\Download\" 
04.
 
05.
for /f "usebackq delims=" %%i in ("%Source%") do call :ProcessFile "%%i" 
06.
goto :eof 
07.
 
08.
:ProcessFile 
09.
set "Rar=%~1" 
10.
set "Rar=%Rar:.part1.=.part*.% 
11.
move "%Rar%" "%Target%">nul 
12.
goto :eof
Grundannahme ist hier, dass nur eine ".rar"- oder eine ".part1.rar"-Datei in der Liste vorkommt.

Grüße
bastla
Bitte warten ..
Mitglied: zensbert
09.05.2008 um 00:43 Uhr
servus,
kopiert so immer noch nicht, aber in der txt stehen ja mehrer dateien drin, kann das deswegen nich
gehen?
also
datei1.part1.rar
datei2.part1.rar
.
.


thx
Bitte warten ..
Mitglied: bastla
09.05.2008 um 07:21 Uhr
Hallo chizophren!

aber in der txt stehen ja mehrer dateien drin, kann das deswegen nich gehen?
Mit der Dateianzahl hat das nix zu tun - gemeint war nur, dass etwa eine angegebene ".part3.rar"-Datei nicht verarbeitet würde, sondern es nur mit ".part1.rar" oder ".rar" funktionieren kann.

Ändere zum Testen das "@echo off" in der ersten Zeile in ein "@echo on" und starte den Batch von der Kommandozeile aus - da dann alle Befehle vor ihrer Ausführung angezeigt werden, solltest Du erkennen können, wo es hakt ...

Grüße
bastla
Bitte warten ..
Mitglied: zensbert
09.05.2008 um 09:17 Uhr
hi,
also so siehts aus, das ist die batch:
for /f "usebackq delims=" %%i in ("D:\download\rars2delete3.txt") do call :ProcessFile "%%i"
echo step1
goto :eof

:ProcessFile
set "Rar=%~1"
set "Rar=%Rar:.part1.=.part*.%
echo processfile rars set
move "%Rar%" "%Target%"
echo move order
so die ausgabe :

processfile rars set
Das System kann die angegebene Datei nicht finden.
move order
step1
der pfad zur txt stimmt aber..
ne idee?
Bitte warten ..
Mitglied: bastla
09.05.2008 um 09:42 Uhr
Hallo chizophren!

Da Du es anscheinend bevorzugst, Dateinamen oder Pfade direkt in die Befehle zu schreiben, anstatt sie, wie vorgeschlagen, am Anfang per "set" festzulegen, musst Du natürlich auch "%Target%" durch "D:\Downloads\" ersetzen.

Dein eingefügtes "echo processfile rars set" gibt noch mehr Info her, wenn Du es etwa so formulierst:
01.
echo processfile %Rar%
Grüße
bastla
Bitte warten ..
Mitglied: zensbert
09.05.2008 um 12:09 Uhr
hatte das nur gemacht um fehler auszuschliessen, is mir relativ ob ich da ne variable aufrufe oder
den pfad hinschreibe^^,
habe die rar-variable mal ausgegeben, da scheint nichts drin zu stehen, erfolgt keine ausgabe..

danke..
Bitte warten ..
Mitglied: bastla
12.05.2008 um 11:54 Uhr
Hallo chizophren!

habe die rar-variable mal ausgegeben, da scheint nichts drin zu stehen, erfolgt keine ausgabe..
Das hieße aber, dass im Unterprogramm nichts ankommt, was eigentlich nur bei einer leeren Textdatei möglich wäre ...

Versuch es mal mit dieser Variante:
01.
@echo off & setlocal 
02.
for /f "usebackq delims=" %%i in ("D:\download\rars2delete3.txt") do set "Rar=%%i" & echo Gelesene Zeile: %%i & call :ProcessFile 
03.
echo step1 
04.
goto :eof 
05.
 
06.
:ProcessFile 
07.
set "Rar=%Rar:.part1.=.part*.% 
08.
echo Bearbeiteter Pfad: %Rar% 
09.
move "%Rar%" "%Target%" 
10.
goto :eof
Grüße
bastla

P.S.: Für das Posten von Code hätten wir eine eigene Formatierungsmöglichkeit.
Bitte warten ..
Mitglied: zensbert
12.05.2008 um 22:25 Uhr
danke..
so hats geklappt,
finde es sehr nett von dir das du deine zeit geopfert hast..

nochmals danke^^
Bitte warten ..
Mitglied: zensbert
07.07.2008 um 11:54 Uhr
Hmm, habe aber festgestellt dass immer nur die ersten RARs kopiert werden, sprich:
X.part1.rar und X.part2.rar
Y.part1.rar und Y.part2.rar
stehen in der txt, aber er schiebt nur die X (Part 1 und 2)...
was kann man da tun??

Thx im voraus..
Bitte warten ..
Mitglied: bastla
15.07.2008 um 16:08 Uhr
Hallo chizophren!

Der Grund dafür, dass die "Y.part*.rar" nicht berücksichtigt werden, kann eigentlich nur in der Listendatei zu finden sein - der Batch in der Version vom 12.05. versucht, jede Zeile der Liste zu lesen und weiter zu bearbeiten (und dokumentiert dies auch durch eine entsprechende Ausgabe).

Versuch einmal, von Hand eine entsprechende Liste zu erstellen und damit zu testen ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
Ungewöhnliche Txt.Datei-Abfrage mit Batch (3)

Frage von DaTobsn zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Datei zum verschieben von Dateien aus Unterordnern ? (10)

Frage von Ghostrider1911 zum Thema Batch & Shell ...

Batch & Shell
gelöst Falsche Umlaute beim auslesen einer .txt mit batch (2)

Frage von pdiddo zum Thema Batch & Shell ...

Batch & Shell
gelöst Ordner per Batch verschieben, Datei kopieren (2)

Frage von Shape.Shifter zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...

DSL, VDSL
DSL-Signal bewerten (8)

Frage von SarekHL zum Thema DSL, VDSL ...