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!
Please also mark the comments that contributed to the solution of the article
Content-Key: 363066
Url: https://administrator.de/contentid/363066
Printed on: April 25, 2024 at 07:04 o'clock
3 Comments
Latest comment
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