Auf der (Win7,64) Konsole xml-Dateien aus einer komplexen Ordnerstruktur in ein Verzeichnis zu kopieren
Hi,
I muss/will alle xml-Dateien (es gibt kkeine anderen) aus einer Verzeichnisstruktur in einem einzigen Verzeichnis kopieren.
Am liebsten dann auch gleich bei jeder Datei mit Regex den xml-code entfernen (<.+?>).
(der Grund ist, dass ich den reinen Text in einen Editor mit Rechtschreibprüfung laden will, um ihn zu kontrollieren)
Das Kopieren versuchte ich mit:
set "quelle=C:\Users\ich\Documents\Wurzel_XML"
set "ziel=C:\Users\ich\Documents\Alle_XML"
FOR /F "delims=" %%i in ('dir /b /s /aa "%quelle%"') do copy "%%i" "%ziel%"
Aber 1.) : "%%i" kann syntaktisch an dieser Stelle nicht verarbeitet werden.
Und 2.): Geht Regex in der Konsole überhaupt?
Mein Umgang mit der Konsole ist halt schon seeeehr lange her
Vielen Dank!
I muss/will alle xml-Dateien (es gibt kkeine anderen) aus einer Verzeichnisstruktur in einem einzigen Verzeichnis kopieren.
Am liebsten dann auch gleich bei jeder Datei mit Regex den xml-code entfernen (<.+?>).
(der Grund ist, dass ich den reinen Text in einen Editor mit Rechtschreibprüfung laden will, um ihn zu kontrollieren)
Das Kopieren versuchte ich mit:
set "quelle=C:\Users\ich\Documents\Wurzel_XML"
set "ziel=C:\Users\ich\Documents\Alle_XML"
FOR /F "delims=" %%i in ('dir /b /s /aa "%quelle%"') do copy "%%i" "%ziel%"
Aber 1.) : "%%i" kann syntaktisch an dieser Stelle nicht verarbeitet werden.
Und 2.): Geht Regex in der Konsole überhaupt?
Mein Umgang mit der Konsole ist halt schon seeeehr lange her
Vielen Dank!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 363066
Url: https://administrator.de/forum/auf-der-win7-64-konsole-xml-dateien-aus-einer-komplexen-ordnerstruktur-in-ein-verzeichnis-zu-kopieren-363066.html
Ausgedruckt am: 21.05.2025 um 01:05 Uhr
3 Kommentare
Neuester Kommentar

Nimm besser gleich die Powershell.
Gruß snap
function Copy-Flat([string]$source,[string]$destination,[string[]]$Filefilter){
gci $source -Include $FileFilter -Recurse | %{
$dest = "$destination\$($_.Name)";$cnt = 1
while(Test-Path $dest){$dest = "$destination\$($_.Basename)($cnt)$($_.Extension)"; $cnt++}
([xml](gc $_.Fullname)).InnerText | sc $dest
}
}
Copy-Flat -source 'C:\Users\ich\Documents\Wurzel_XML' -destination 'C:\Users\ich\Documents\Alle_XML' -Filefilter '*.xml'
Ich bin auch bei Powershell - fand die Aufgabenstellung witzig.
Wenn ein Microsoft Word installiert ist, macht folgendes Script genau das, was du willst und sortiert die Dateien automatisch in zwei verschiedene Verzeichnisse (Rechtschreibung OK oder nicht).
Gruß
Edit: vergessenes Out-File nachgereicht
Wenn ein Microsoft Word installiert ist, macht folgendes Script genau das, was du willst und sortiert die Dateien automatisch in zwei verschiedene Verzeichnisse (Rechtschreibung OK oder nicht).
Gruß
$SearchPath="C:\temp\PS-SpellingChecker\"
$OKPath="C:\Temp\PS-SpellingChecker\OK"
$FalsePath="C:\Temp\PS-SpellingChecker\Fehler"
$WordApp = New-Object -com Word.Application
Get-ChildItem -Filter *.xml -path $SearchPath | %{
$XmlDoc = Get-Content $_.Name
$XmlDoc = $XmlDoc -replace "(<.+?>)"
Out-File -FilePath $_ -InputObject $XmlDoc
if ($WordApp.CheckSpelling($XmlDoc) -eq $true){
Move-Item -Path $_ -Destination $OKPath
}
else {
Move-Item -Path $_ -Destination $FalsePath
}
}
Edit: vergessenes Out-File nachgereicht