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
Kommentar vom Moderator Biber am 22.08.2011 um 21:23:39 Uhr
...sortieren und umbennen
Set /a rgc+=1
#773
GELÖST

Dateien in Unterordnern in weitere Unterordner sortieren und umbennen

Frage Entwicklung Batch & Shell

Mitglied: Smee76

Smee76 (Level 1) - Jetzt verbinden

22.08.2011, aktualisiert 21:23 Uhr, 2952 Aufrufe, 8 Kommentare

Als Anfänger in der Batchprogrammierung bin ich auf diese Seite gestoßen
und erhoffe mir guten Rat und Hilfe.

Ich habe folgendes Problem.

In einem Ordner befinden sich Unterordner welche Dateien beinhalten.
Diese Dateien sollen in weitere Unterordner sortiert werden und umbenannt werden.

Folgendes Schema ist in etwa anzunehmen:

E:\Dokumentation\Rechenzentrum als Ausgangsverzeichnis

E:\Dokumentation\Rechenzentrum\Raum1
als Unterverzeichnis
E:\Dokumentation\Rechenzentrum\Raum2 als Unterverzeichnis
E:\Dokumentation\Rechenzentrum\Raum3
als Unterverzeichnis

E:\Dokumentation\Rechenzentrum\Raum1\01HE39_001_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE39_001_M85.sor
als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE39_002_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE39_002_M85.sor
als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41_001_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41_001_M85.sor
als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41_002_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41_002_M85.sor
als Datei

E:\Dokumentation\Rechenzentrum\Raum2\06HE15_001_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE15_001_M85.sor
als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE15_002_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE15_002_M85.sor
als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE19_001_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE19_001_M85.sor
als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE19_002_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE19_002_M85.sor
als Datei


Aussehen sollte das ganze hinterher in etwa so:

E:\Dokumentation\Rechenzentrum\Raum1\01HE39\1300\01HE39_001.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE39\1300\01HE39_002.sor
als Datei

E:\Dokumentation\Rechenzentrum\Raum1\01HE39\850\01HE39_001.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE39\850\01HE39_002.sor
als Datei

E:\Dokumentation\Rechenzentrum\Raum1\01HE41\1300\01HE41_001.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41\1300\01HE41_002.sor
als Datei

E:\Dokumentation\Rechenzentrum\Raum1\01HE41\850\01HE41_001.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41\850\01HE41_002.sor
als Datei



wobei HExx Unterordnerkriterium 1 ist (die anderen Zeichen müssen aber auch bleiben ) und M13 für den Ordner 1300 und M85 für den Ordner 850 steht
Das ganze brauche ich um Messprotokolle zur Auswertung vorzubereiten und das sind ne ganze Menge.

Ich hoffe ich habe es halbwegs verständlich ausgedrückt.

Vielen dank schonmal im Voraus


Gruss Smee
Mitglied: Skyemugen
22.08.2011 um 20:23 Uhr
Aloha und willkommen im Forum!

Nun wir erhoffen uns gerade neu Neuankömmlingen eigentlich erst einmal Begrüßungen *grübel* und
Vielen dank schonmal im Voraus

Wird bei uns ungern gelesen

Du suchst Hilfe & Rat und bist
Anfänger in der Batchprogrammierung
... nun, hast du selbst bereits versucht, etwas zu erstellen, wenn ja: Wie weit bist du gekommen, wo hapert es gerade?

Auch wenn wir gerne fertige Skripte hinsetzen, das hier wäre mit Hilfe der Forumssuche, dem Tutorial zur FOR-Schleife sowie einigen Hinterfragungen selbst zu schaffen

greetz André

P.S.: Erstmal schön alten Godzilla-Film gucken, dann kann man hier weitersehen ^_^
P.P.S.: Weitere Unterverzeichnisse unterhalb RaumX existieren nicht?
Bitte warten ..
Mitglied: Smee76
22.08.2011 um 20:35 Uhr
Hallo,
erstmal sorry fürs nicht begrüßen,das ist mir glatt durchgegangen,
da ich hier kurz vor dem Verzweifeln stehe.

Es hapert genau an den for schleifen.

Zuerst muss ich eine Ordnerstruktuer tiefer um dort dann die benötigten
"neuen" Ordner anzulegen. In die Ordnerstruktur komme ich, scheitere dann aber
daran die Benötigten Unterordner anzulegen.
Da sich der Ordnername ja aus den Dateien ergibt.
In diesen Ordner muessen dann ja wieder Ordner erstellt werden,
diese sind immer gleich 850 und 1300.

Ist das dann schon die dritte for schleife ?

Und dann muessen die Dateien noch verschoben und umbenannt werden.

Achja, meinen Ansatz habe ich hier aus dem Forum, aber irgendwie ist
das dann doch alles ein bissel zu hoch für mich.

Gruß Smee
Bitte warten ..
Mitglied: Skyemugen
22.08.2011 um 21:11 Uhr
Aloha,

Achja, meinen Ansatz habe ich hier aus dem Forum, aber irgendwie ist
das dann doch alles ein bissel zu hoch für mich.

welchen Ansatz, ich seh keinen ... *mich umseh*

ach, was soll's der Film macht gerade gute Laune, daher spendier ich dir eben das volle Programm *gg*

Ich interpretiere also, dass es nur 13 und 85 gibt, ja?

01.
@echo off & setlocal 
02.
set "Pfad=E:\Test" 
03.
for /d %%s in ("%Pfad%\*") do ( 
04.
	pushd %%s 
05.
	for /f "tokens=1-3 delims=_" %%m in ('dir /b /a-d *_*_*.sor 2^>nul') do call :Ablauf %%m %%n %%o 
06.
	popd 
07.
08.
pause 
09.
goto :eof 
10.
 
11.
:Ablauf 
12.
set "Zahl=%~n3" 
13.
set "Zahl=%Zahl:~-2%" 
14.
if %Zahl% equ 13 (set "Ordner=%1\%Zahl%00") else (set "Ordner=%1\%Zahl%0") 
15.
set "Datei=%1_%2.sor" 
16.
ren "%1_%2_%3" "%Datei%" 
17.
if not exist "%Ordner%" md "%Ordner%" 
18.
move "%Datei%" "%Ordner%">nul 
19.
goto :eof
Da der Code beim TV-gucken erstellt worden ist trotzdem getestet würde ich dennoch erst einmal Testdaten durchjagen als Enddaten ist generell sinnvoll

bei Fragen, immer raus damit

greetz André

edit passt noch nicht, habe mich verguckt, es soll ja 850 werden, nicht 8500 wie 1300 , mache gleich Korrektur auf 850 & 1300 korrigiert
edit for /d
Bitte warten ..
Mitglied: Smee76
22.08.2011 um 21:28 Uhr
Vielen Dank schonmal für deine Bemühungen.

Ich hoffe das lenkt nicht zu sehr von Godzilla ab ...

Es gab da ein kleines missverständnis,
und zwar ist der String Raum so nicht wörtlich gemeint gewesen.

E:\Dokumentationen\Rechenzentrum\RZ10-R1-VS11 => E:\Dokumentationen\Rechenzentrum\RZ10-R1-VS11\R1-VS11-HE03\1300 und E:\Dokumentationen\Rechenzentrum\RZ10-R1-VS11\R1-VS11-HE03\850
E:\Dokumentationen\Rechenzentrum\RZ10-R1-VS15
E:\Dokumentationen\Rechenzentrum\RZC-029-1-02
E:\Dokumentationen\Rechenzentrum\RZC-029-1-03
E:\Dokumentationen\Rechenzentrum\U22-VS03

so lauten die pfade dann konkret

btw

mein Ansatz (zum grinsen)

@echo off & setlocal
for /d %%v in ("E:\Dokumentationen\Rechenzentrum\*.*") do (
echo %%v\test
)
Bitte warten ..
Mitglied: Skyemugen
22.08.2011 um 21:38 Uhr
Aloha,

nun, ich habe deshalb nur nach Raum explizit gesucht, da ich nicht sicher bin, ob in dem Verzeichnis auch andere - nicht relevante - Unterverzeichnisse vorhanden sein könnten, die dann mit abgeklappert werden - gut, das würde erst evtl. unschön, wenn die auch .sor-Dateien haben, die nicht angefasst werden sollen. Wenn dem nicht so ist, nimm einfach ^|findstr /B "Raum" raus.

Deine Endstruktur unterscheidet sich deutlich vom Beispiel ...
01HE03
zu
R1-VS11-HE03
*grübel*
Willst du jetzt noch Unterteile des Raumnamens ins Unterverzeichnis oder sind diese bereits im Dateinamen enthalten?
Sind RZ nur die Räume oder auch U22?

greetz André

ich mag es nicht, wenn sich wichtige Komponenten derart drastisch ändern ...
Bitte warten ..
Mitglied: Smee76
22.08.2011 um 21:54 Uhr
Es gibt keine Unterordner die nicht angefasst werden sollen

Die komplette Unterordner Struktur lässt sich glaube ich aus dem Dateinamen erschlüsseln.
Es muss halt nur alle Ordner durchlaufen.

E:\Dokumentationen\Rechenzentrum\RZ10-R2-VS11\R2-VS11-HE03_001_M13.sor R2-VS11-HE03=neuer Ordner ; M13= Unterordner im neuen Ordner mit namen 1300

E:\Dokumentationen\Rechenzentrum\RZ10-R2-VS11\R2-VS11-HE03\
E:\Dokumentationen\Rechenzentrum\RZ10-R2-VS11\R2-VS11-HE03\1300\R2-VS11-HE03_001.sor so dann fertig halt.

Sorry =/
leider noch keinen plan wann etwas wichtig ist ...


Raum hab ich rausgenommen, sieht jetzt super aus.
Jetzt muss ich es nur noch verstehen ^^.

Dankö =D
Bitte warten ..
Mitglied: Skyemugen
22.08.2011 um 22:09 Uhr
Aloha,

jo, habe dann auch for /f durch for /d ersetzt, da durch Wegfallen des findstr eine Befehlsverwendung von dir auch nicht mehr nötig ist und so habe ich auch gleich das erste pushd mit wegrationalisiert hat noch ein popd am Ende gefehlt *pfeif*

Dann sollte das ja alles soweit passen.

Bei Fragen zur Verarbeitung etc. einfach fragen. außer es ist offensichtlich

greetz André
Bitte warten ..
Mitglied: Smee76
22.08.2011 um 22:12 Uhr
Vielen Dank nochmal

Gruß Smee
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung!

(2)

Erfahrungsbericht von ashnod zum Thema Internet ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...