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

Per Batch Ordner mit bestimmter Benennung suchen und den Inhalt in übergeordneten Ordner verschieben danach Unterordner löschen

Frage Entwicklung Batch & Shell

Mitglied: Reedix

Reedix (Level 1) - Jetzt verbinden

07.04.2010 um 13:34 Uhr, 6520 Aufrufe, 13 Kommentare

Hi Alle,

ich habe ein wenig in eurem Forum "rumgestöbert" und es scheint das hier einige ganz helle köpfe am Werk sind
persönlich ist mein Wissen was Bachdateien angeht sehr sehr mager und ich hoffe ihr könnt mir Helfen.
Ich benutze als Betriebssystem Vista falls es wichtig für euch zu wissen ist.

Ich habe ein entpackprogramm welches selbstständig alle gepackten Dateien entpackt und diese in den Ursprungsordner belässt. Beispiel ich sage Entpacke alles was in D:\ ist in dem Ordner wo sich die rar Files befinden
und lösche danach die rar Dateien.

Beispiel:

D:\Ordner\Ordner\OrdnerA\*.rar
D:\Ordner\Ordner\OrdnerB\*.rar

Zwei der übergeordneten Ordner in denen sich die rars befinden sind immer gleich, nennen wir sie OrdnerA und OrdnerB, diese können mal tiefer in der Verzeichnisstruktur von D:\ sein oder direkt nach zB. D:\
es kann aber auch so aussehen D:\Ordner\Ordner\Ordner\OrdnerA\*.rar

Ich kann dem Entpackprogramm sagen das es eine Datei ausführen soll nachdem der entpackvorgang stattgefunden hat und diese Datei soll dann die Batch sein die ausgeführt wird, deshalb ist es wichtig das sich die batchdatei an einem festen Ort befindet.

Die Batch soll folgendes tun:

suche OrdnerA in der gesamten Struktur d:\ und verschiebe Inhalt von OrdnerA in den darüberliegenden Ordner und lösche OrdnerA
suche OrdnerB in der gesamten Struktur d:\ und verschiebe Inhalt von OrdnerB in den darüberliegenden Ordner und lösche OrdnerB

ich hoffe ihr habt das einigermaßen verstanden...

Gruß und Danke
Mitglied: Snowman25
07.04.2010 um 14:02 Uhr
Hallo Reedix,

gibst du uns auch noch den namen deines 'entpackprogrammes'?
ich nehme mal stark an, es ist WinRAR. Aber auf Nummer sicher gehen ist nie schlecht

gruß
Snow
Bitte warten ..
Mitglied: Biber
07.04.2010 um 14:11 Uhr
Moin Reedix,

willkommen im Forum.
Ergänzend zu Snowman25 noch die Nachfrage
Ich kann dem Entpackprogramm sagen das es eine Datei ausführen soll nachdem der entpackvorgang stattgefunden
?? Kann beim Aufruf durch das Entpackprogramms denn auch der Ordnername/der name der gerade abgefackelten *.rar Archivs als Parameter übergeben werden?

Denn es mach ja wenig Sinn, bei jedem Nachklapp-Entpackprogramm-Folgebatch immer die ganze Platte nach allen *.rar-Files zu durchsuchen....

Grüße
Biber
Bitte warten ..
Mitglied: Snowman25
07.04.2010 um 14:18 Uhr
Zitat von Biber:
Denn es mach ja wenig Sinn, bei jedem Nachklapp-Entpackprogramm-Folgebatch immer die ganze Platte nach allen *.rar-Files zu
durchsuchen....

Ich bastel trotzdem grade sowas...
zwischenstand:

01.
dir D:\*.rar /A:-D /B /S>rarlist.list
Damit hast du schonmal 'ne liste, in der alle Dateien mit vollem Pfad stehnen, welche auf .rar enden.
Da du ja die .rar-Dateien immer sofort nach dem (erfolgreichen) entpacken löscht, sollte hier nicht zu viel drinstehen.

01.
 for /F "delims=" %%p in (rarlist.list) do (
Schleife zum durchlaufen der Dateiliste

01.
 del %%~pP
löscht alle .rar-Dateien..
und jetzt hab ich keine lust mehr..
Bitte warten ..
Mitglied: Reedix
07.04.2010 um 15:29 Uhr
hi und danke für die schnellen antworten.

erstmal die fragen

1. das programm heisst HIX es ist glaub ich ziemlich unbekannt

2.

?? Kann beim Aufruf durch das Entpackprogramms denn auch der Ordnername/der name der gerade abgefackelten *.rar Archivs als Parameter übergeben werden?

Denn es mach ja wenig Sinn, bei jedem Nachklapp-Entpackprogramm-Folgebatch immer die ganze Platte nach allen *.rar-Files zu durchsuchen....

es geht ja nicht um die suche nach den rar files.. es geht um die suche nach OrdnerA und OrdnerB das entpackprogramm übernimmt die löschung der rar files von selbst..

beilspiel:

D:\Ordner\Ordner\OrdnerA\rar files
D:\Ordner\Ordner\OrdnerB\rar files

ich sag dem enpackprogramm also.. entpacke alle rars die du in D:\ findest..und lösche die rars danach..

der stand sieht dann so aus:

D:\Ordner\Ordner\OrdnerA\dateiA.xyz
D:\Ordner\Ordner\OrdnerB\dateiB.xyz

danach würde dann das programm die batch ausführen die bewirkt das es wie folgt aussieht:

D:\Ordner\Ordner\dateiA.xyz + dateiB.xyz


natürlich isses wie du sagst doof das das programm sinnlos die ganze platte nach den OrdnernA und OrdnernB sucht wenn es sie uU nur einmal gibt aber teilweise gibt es auch auf d:\ verteilt viele ORdnerA und OrdnerB wo die entpackten dateien in die überordner sollen..

folgendes kann ich dem programm sagen was parameter angeht:

After extraction run application XYZ

und auswählen ob

run applycation with every file
run only with files of type xyz
run only one time

superoptimal wäre natürlich wenn die batch so schlau wäre und einfach innerhalb des vom entpackprogramss aktuell erfassten ordner nach OrdnerA und OrdnerB sucht. aber das führt glaub ich zu weit.. ich wüsste jedenfalls nicht wie die batch wissen soll wo das programm grad was tut...

Abschliessend nochmal ich suche keine rars.. ich suche immer OrdnerA und OrdnerB dessen inhalt dann in den übergeortneten Ordner verschoben werden sollen und dann OrdnerA und OrdnerB gelöscht werden sollen
Bitte warten ..
Mitglied: Snowman25
07.04.2010 um 15:48 Uhr
sachma....
HiX hat doch all die Funktionen die du brauchst. Wozu da noch i-was hintendranschieben?
besorg dir mal die neueste Version (hier), stell die Sprache auf Deutsch und dann dürftest du die ganzen optionen verstehen.

Gruß
Snow
Bitte warten ..
Mitglied: Reedix
07.04.2010 um 16:58 Uhr
so wie ich das verstehe kann das Programm zwar alles löschen und skippen was ich will dennoch bleiben die entpackten Dateien in dem Ursprungsordner in dem entpackt wurde.. das stört mich aber wenn es so aussieht

d:\ordner\ordnerA\dateia
d:\ordner\ordnerB\dateib


ich muss dann händisch dateiA und dateiB in d:\ordner verschieben und ordnerA und ordnerB löschen das etwa 20 mal...ich meine das kann hix nicht


also mir würde das auch reichen wenn es unabhängig vom hix funktiniert.. also das ich einmalig die batch auslösen kann und diese nach OrdnerA und OrdnerB sucht und den inhalt von OrdnerA und OrdnerB in den übergeordneten Ordner verschiebt und anschliessend OrdnerA und OrdnerB löscht.
Bitte warten ..
Mitglied: Reedix
08.04.2010 um 12:49 Uhr
und..wie sieht es aus... keiner ne idee ??
Bitte warten ..
Mitglied: bastla
11.04.2010 um 00:30 Uhr
Hallo Reedix und, mit etwas Verspätung, willkommen im Forum!

Was Snowman25 meinte (und mit "HiX" auch möglich sein dürfte), ist, gleich beim Entpacken als Ziel den übergeordneten Ordner anzugeben - notfalls mit ".."

Außerdem hätte ich, wie Biber, auch angenommen, dass "HiX" den Pfad zu den entpackten Dateien kennt und daher zumindest diesen an den Batch übergeben könnte, ohne erst auf dem ganzen Laufwerk nach dem jeweiligen Ordner suchen zu müssen ...
Um aber trotzdem einen Ansatz für die ursprüngliche Problemstellung anzubieten:
01.
@echo off & setlocal 
02.
for /f "delims=" %%i in ('dir /s /b /ad D:\OrdnerA D:\OrdnerB') do (echo move "%%i\*.*" "%%~dpi" && echo rd /s /q "%%i")
Damit Du entspannt testen kannst, steht vor dem Verschiebe- bzw Löschbefehl jeweils ein "echo" - solange das dort ist, wird der Befehl nur angezeigt, aber nicht ausgeführt.

Anzumerken wäre noch, dass, sobald Du das "echo" vor dem "move" entfernt hast, auf Teufel komm raus verschoben wird - falls es im übergeordneten Ordner bereits eine gleichnamige Datei gibt, wird diese kommentarlos überschrieben - daher noch die Frage: Ist mit einer solchen Namensgleichheit zu rechnen, und wenn ja, wie soll dann verfahren werden?

Grüße
bastla
Bitte warten ..
Mitglied: Reedix
11.04.2010 um 18:42 Uhr
Hi Bastla und danke für die mühe,

eine Namensgleichheit der Dateien im übergeordneten Ordner ist ausgeschlossen. Es ist immer eine Datei in OrdnerA und eine in OrdnerB die jeweils verschieden heissen und dann zusammen im übergeordneten landen.

was HiX angeht habt ihr (du und biber) recht.. ich gehe auch davon aus das "hix" den Pfad kennt und den übergeben würde.. wie wäre denn dann die batch aufgebaut bzw wie würdest du/ihr die bekannte batch anpassen damit ich es mal ausprobieren kann.

das was snowman sagt stimmt auch, allerdings entpacke ich keine einzelnen Ordner denen ich dann sage enpacke das in den Überordner, sondern ich mach das alle paar Wochen.. ich sag dann entpacke alles was in D:\ ist ..alle Unterordner einbegriffen und sage da .. enpacke in den Ordner wo die rars waren..


zu deinem Lösungsvorschlag hab ich 3 Anmerkungen:

1. super hat funktioniert
2. ich würde mir wünschen das nach dem verschieben alle OrdnerA und OrdnerB aus denen verschoben wurde gelöscht werden (aber nur wenn sie leer sind, also erfolgreich verschoben wurden)
3. was dich vielleicht mehr interessiert und überhaupt nicht schlimm ist.. wenn sich direkt unter D:\ OrdnerA oder OrdnerB befindet so passiert nichts beim ausführen der batch.. beispiel.. sieht es so aus D:\OrdnerA dann verschiebt er in der batch nur alle inhalte aus den gefundenen OrdnerB und lässt alle OrdnerA unbearbeitet.. wie gesagt für dich zur info.. das passiert bei mir eh nie das die direkt unter D:\ sind also muss nix geändert werden.
Bitte warten ..
Mitglied: bastla
11.04.2010 um 19:58 Uhr
Hallo Reedix!

Zu 1.:

Zu 2.: Das Löschen wird durch das "echo" vor dem "rd" verhindert - also auch entfernen ...

Zu 3.: Falls doch der Bedarf auftauchen sollte, unmittelbar in Root liegende Ordner anzusprechen, sollte das so gehen:
for /f "delims=" %%i in ('dir /s /b /ad D:\ 2^>nul^|findstr /e "\\OrdnerA \\OrdnerB"') do (echo move "%%i\*.*" "%%~dpi" && echo rd /s /q "%%i")
Hinsichtlich der Übergabe des Pfades duch "HiX": In diesem Fall könnte der Batch (wieder mit den "Sicherheits-echos") so aussehen:
01.
@echo off & setlocal 
02.
echo move "%~1\*.*" "%~dp1" && echo rd /s /q %1
Grüße
bastla
Bitte warten ..
Mitglied: Reedix
11.04.2010 um 20:46 Uhr
ahh das mit dem 2. Echo hab ich übersehen..hat bestens geklappt.. der löscht aber nur die Ordner die gerade angesprochen werden und nicht auf der ganzen platte d: oder?

das

01.
@echo off & setlocal
02.
echo move "%~1\*.*" "%~dp1" && echo rd /s /q %1

funktioniert leider nicht.. ich habe es mal direkt im OrdnerA testweise ausgeführt und der fehler ist die syntax für ... ist falsch
Bitte warten ..
Mitglied: bastla
11.04.2010 um 21:17 Uhr
Hallo Reedix!
der löscht aber nur die Ordner die gerade angesprochen werden und nicht auf der ganzen platte d: oder?
Da ja durch die Schleife alle passenden Ordner auf der gesamten Platte D: gesucht werden, ist diese Frage nur mit "ja - doch" zu beantworten.
ich habe es mal direkt im OrdnerA testweise ausgeführt
Wenn Du (und nicht das Programm) das machst, musst Du dem Batch auch den Pfad als Parameter mitliefern - der Aufruf müsste dann also etwa so aussehen:
Verschieben.cmd D:\Ordner\Ordner\OrdnerA
- allerdings wird das Programm vermutlich ohnehin eher den Pfad zur ".rar"-Datei übergeben - dann müsste der Batch etwas anders aussehen:
01.
@echo off & setlocal 
02.
pushd "%~dp1" 
03.
move *.* .. || (popd & goto :eof) 
04.
popd 
05.
echo rd /s /q "%~dp1"
Falls allerdings der Batch tatsächlich aus dem "OrdnerA" heraus gestartet würde, sollte sich das Ganze etwa so
01.
@echo off & setlocal 
02.
move *.* .. || goto :eof 
03.
set "Ordner=%cd%" 
04.
cd \ 
05.
echo rd /s /q "%Ordner%"
machen lassen.

Grüße
bastla
Bitte warten ..
Mitglied: Reedix
11.04.2010 um 22:10 Uhr
ich hab bissl rumprobiert.. bei deiner 2. variante also mit aus ordnerA heraus hat er den inhalt vom hix ordner nach d: verschoben..
also führt hix das aus als wäre es im eigenen ordner.. sprich er übermittelt nix an die batch..

vielen vielen dank für die mühe.. ich fahre mit dem durchsuchen der platte D und dem verschieben sehr gut.. das reicht mir..

das problem ist gelöst
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

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

Frage von Fromeonly zum Thema Batch & Shell ...

Batch & Shell
gelöst Per Batch Konfliktdateien in Dropbox suchen (4)

Frage von nobbi49 zum Thema Batch & Shell ...

Batch & Shell
gelöst Datei in Ordner mit Batchdatei suchen und weiterverarbeiten (2)

Frage von MichaelWiggen zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (19)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...