Top-Themen

Aktuelle Themen (A bis Z)

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 übergeordnetes Verzeichnis finden

Mitglied: Wenzel

Wenzel (Level 1) - Jetzt verbinden

03.03.2009, aktualisiert 18.10.2012, 8420 Aufrufe, 6 Kommentare

Sodann will ich mal meine erste Frage hier loswerden

Hallo Allerseits,
ich möchte eine Pfadangabe einer Datei nach dem übergeordnetem Ordnernamen auswerten.

Warum ich das brauche:
Ich habe eine Ordnerstruktur:
C:\IrgendeinPfad\Hauptordner
C:\IrgendeinPfad\Hauptordner\Ordner1
C:\IrgendeinPfad\Hauptordner\Ordner2
C:\IrgendeinPfad\Hauptordner\Ordner3

In diesen Ordnern liegen Dateien, die immer Datei.xml heissen.
Wenn ich den Hauptordner inkl. Unterordner nach *.xml Dateien durchsuche, bekomme ich eine Dateiliste wie folgt:
C:\IrgendeinPfad\Hauptordner\Datei.xml
C:\IrgendeinPfad\Hauptordner\Ordner1\Datei.xml
C:\IrgendeinPfad\Hauptordner\Ordner2\Datei.xml
C:\IrgendeinPfad\Hauptordner\Ordner3\Datei.xml

Diese sollen in ein neues Zielverzeichnis kopiert werden, daher möchte/muss ich die Dateien umbenennen:
Pfad\Zielordner\Hauptordner.xml
Pfad\Zielordner\Ordner1.xml
Pfad\Zielordner\Ordner2.xml
Pfad\Zielordner\Ordner3.xml

Den Hauptordner übergebe ich an das Batch-Skript
Ich habe hier schon einiges "geschau_klaut"
Nur reicht mir meine bisherige Lösung nicht, da ich die xml-Datei des Hauptordners nicht erwische...

Hier mal mein Code
01.
  
02.
set tempDir=C:\temp\GesammelteXMLDateien 
03.
if "%~1"=="" ( goto NODIR ) 
04.
for /d %%v in ("%~1\*.*") do (  
05.
    for /f "delims=" %%d in ('dir /b /od "%%v\*.plmxml" 2^>nul^') do ( 
06.
		copy "%%v\%%d" "%tempDir%\%%~nxv%%~xd" 
07.
	)  
08.
)


Schön wäre, wenn ich nicht so umständlich die Ordnernamen suchen muss, sondern einfach den String (Bsp: C:\IrgendeinPfad\Hauptordner\Ordner1\Datei.xml) auswerte und alles zwischen letztem und vorletztem Backslash bekommen (in diesem Fall den String "Ordner1").

Vielen Dank schon mal an die Cracks hier...
Mitglied: bastla
03.03.2009, aktualisiert 18.10.2012
Hallo Wenzel und willkommen im Forum!

Eigentlich ging es neulich in diesem Thread um die gleiche Problemstellung ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
03.03.2009 um 21:33 Uhr
Moin Wenzel,

willkommen im Forum.
Schön wäre, wenn ich nicht so umständlich die Ordnernamen suchen muss, sondern einfach den String (Bsp: C:\IrgendeinPfad\Hauptordner\Ordner1\Datei.xml) auswerte und alles zwischen letztem und vorletztem Backslash bekommen (in diesem Fall den String "Ordner1").

Klare Anforderungen sind mir die Liebsten...
Demo zum Nachkaspern am CMD-Prompt (erste Zeile ist Eingabe, zweite Zeile Ausgabe]:
01.
for %i in ("C:\IrgendeinPfad\Hauptordner\Ordner1\Datei.xml\..") do @for %i in ("%~i") do @echo Set "ParentDir=%~ni" 
02.
Set "ParentDir=Ordner1"
[Geht unabhängig davon, ob C:\....Datei.xml existiert oder nicht]

Abgewandelt auf einen Batch, der mit dem Parameter "C:\IrgendeinPfad\Hauptordner\Ordner1\Datei.xml" [in Anführungszeichen] gerufen wird:
01.
 @echo off & setlocal 
02.
set tempDir=C:\temp\GesammelteXMLDateien 
03.
if "%~1"=="" ( goto NODIR ) 
04.
REM unoptimiert FOR %%i in ("%~1\..") do @for %%i in ("%%~i") do copy "%~1" "%tempdir%\%%~ni.XML" 
05.
FOR %%i in ("%~1\..") do @copy "%~1" "%tempdir%\%%~ni.XML"
[ungetestet]
[Edit] Optimierung durch bastla nachgezogen[/Edit]

Grüße
Biber
Bitte warten ..
Mitglied: bastla
03.03.2009 um 21:48 Uhr
@Biber
Sehr elegant - aber wozu das zweite "for"?

Grüße
bastla
Bitte warten ..
Mitglied: Biber
03.03.2009 um 21:58 Uhr
Moin bastla,

...aber wozu das zweite "for"?
Ich dachte, wenn ich es nicht ein bisschen aufbausche, dann merkt jede/r wie einfach das Bätschen ist...

Okay, ich gebs zu:
01.
for %i in ("C:\IrgendeinPfad\Hauptordner\Ordner1\Datei.xml\..") do @echo Set "ParentDir=%~ni" 
02.
Set "ParentDir=Ordner1"
.... reicht völlig aus...

Grüße
Biber
Bitte warten ..
Mitglied: Wenzel
03.03.2009 um 23:58 Uhr
Hallo bastla, hallo Biber,
vielen Dank für die schnellen Antworten.
Ich habe Bibers Lösung bei mir reingebastelt, bei mir wird ja nicht ein Dateinamen, sondern der hauptordner übergeben, dann sieht das so aus:

01.
set tempDir=C:\temp\GesammelteXMLDateien  
02.
rem Abfrage, ob Parameter übergeben wurde... 
03.
FOR /F "delims=" %%i in ('dir /b /s /a-d "%~1\*.xml"') do (  
04.
	for %%v in ("%%i\..") do (  
05.
		Echo copy "%%i" "%tempDir%\%%~nv.xml" 
06.
07.
08.
pause
Natürlich muss das Echo in der "scharfen" Version noch raus, aber da geht es um mehrere Dateien mit jeweils bis zu 70 MB, und die remote rumzuschaufeln macht keinen Spass...

Gibt es da irgendwelche Einwände von Euch beiden Profis, wenn nein, dann setze ich mal den Haken bei gelöst...

Cool, wie einfach die Lösung ist.
Bitte warten ..
Mitglied: Wenzel
04.03.2009 um 00:00 Uhr
Zitat von Biber:
Moin Wenzel,
Klare Anforderungen sind mir die Liebsten...
Grüße
Biber

Klare Antworten sind mir die Liebsten

Vielen Dank, genau danach habe ich gesucht!!!

Gruß vom Wenzel
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Find und Replace Skript für Verzeichnis

gelöst Frage von Fantomas741Batch & Shell3 Kommentare

Hallo Leute, zu diesem Thema gibt es ja schon ein paar Beiträge, aber meine "Batch" Kenntnisse reichen nicht aus ...

Batch & Shell

Batch oder VBS - Doppelte Dateinamen in einem Verzeichnis finden und löschen oder verschieben

gelöst Frage von goodbytesBatch & Shell6 Kommentare

Hallo, ich habe ein dringendes Problem. Durch einen Softwarefehler wurden mir in einem Verzeichnis sehr viele doppelte Dateinamen erzeugt ...

Windows Tools

Batch Verzeichnis vergleichen, in einer anderes kopieren

Frage von cappu25Windows Tools11 Kommentare

Halloo an alle, ich habe jetzt schon verdammt lange rumprobiert und gegooglet aber ich bekomme keine Lösung hin. Folgendes: ...

Batch & Shell

Mit Batch Verzeichnis durchsuchen

gelöst Frage von Nick2212Batch & Shell9 Kommentare

Hey Leute, ich habe eine Frage, und zwar möchte ich eine Batchdatei erstellen womit ich einen Ordner durchsuchen kann, ...

Neue Wissensbeiträge
Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 6 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 12 StundeniOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 1 TagInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Heiß diskutierte Inhalte
Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server24 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless22 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

Webbrowser
Welcher Browser ist der Beste?
Frage von justtinWebbrowser15 Kommentare

Hallo Leute Ich habe eine interessante Frage. Mich wurde mal interessieren welcher Browser ist eure meinung nach der beste? ...