Hallo,
ich habe ein Skript das funktioniert. Jetzt wollte ich es erweitern so das es automatisch alle .txt Dateien bearbeitet. Daran scheite ich.
die erste Zeile und die letzte sind hinzugekommen und für den Dateinamen habe ich $_.name genutzt. Den musste ich vorher mit übergeben. Leider finde ich den Fehler nicht. Die Zeilen zwischen der erste und letzten funktionieren schon und tuen was sie sollen.
die .txt Dateien liegen im selben Verzeichnis wie das Skript.
Hier das Skript:
Get-ChildItem "*.txt" | foreach-object {
$path1 = "C:\local\dateien\$_.name"
#Inputfile laden
$kurz = "c:\ziel2.txt"
$aufget = "c:\ziel3.txt"
$temp = "c:\temp.txt"
gc $path1 | where {$_ -ne ""} > c:\ziel.txt
$input = Get-Content C:\ziel.txt
$ip127 = $input
foreach($line in $ip127){
if($line -notlike '127.0.'){
echo $line >> $temp
}
}
$path = "c:\ziel.txt"
Remove-Item $path
ren $temp $path
$input = Get-Content C:\ziel.txt
$akti = $input
foreach($line in $akti){
if($line -notlike 'Aktive'){
echo $line >> $temp
}
}
Remove-Item $path
ren $temp $path
$input = Get-Content C:\ziel.txt
$proto = $input
foreach($line in $proto){
if($line -notlike 'Proto'){
echo $line >> $temp
}
}
Remove-Item $path
ren $temp $path
$input = Get-Content C:\ziel.txt
$ster = $input
foreach($line in $ster){
if (-not($line.Contains(':'))){
echo $line >> $temp
}
}
Remove-Item $path
ren $temp $path
$input = Get-Content C:\ziel.txt
$v6 = $input
foreach($line in $v6){
if($line -notlike '::'){
echo $line >> $temp
}
}
Remove-Item $path
ren $temp $path
$input = Get-Content C:\ziel.txt
$inter = $input
foreach($line in $inter){
if(-not($line.Contains('0.0.0.'))){
echo $line >> $temp
}
}
Remove-Item $path
ren $temp $path
$input = Get-Content C:\ziel.txt
foreach ($temp in $input)
{
$String = $temp
$zwischen = $String.Remove(0,32) | Out-file -FilePath $kurz -Append
}
$auft = Get-Content $kurz
foreach ($line in $auft)
{
$String = $line.Split(" ")
$zwischen = $String[0] | Out-file -FilePath $aufget -Append
}
Remove-Item $path1
Remove-Item $path
Remove-Item $kurz
Ren $aufget c:\$_.name
Move-Item -Path C:\$_.name -Destination C:\local\dateien
}
ich habe ein Skript das funktioniert. Jetzt wollte ich es erweitern so das es automatisch alle .txt Dateien bearbeitet. Daran scheite ich.
die erste Zeile und die letzte sind hinzugekommen und für den Dateinamen habe ich $_.name genutzt. Den musste ich vorher mit übergeben. Leider finde ich den Fehler nicht. Die Zeilen zwischen der erste und letzten funktionieren schon und tuen was sie sollen.
die .txt Dateien liegen im selben Verzeichnis wie das Skript.
Hier das Skript:
Get-ChildItem "*.txt" | foreach-object {
$path1 = "C:\local\dateien\$_.name"
#Inputfile laden
$kurz = "c:\ziel2.txt"
$aufget = "c:\ziel3.txt"
$temp = "c:\temp.txt"
gc $path1 | where {$_ -ne ""} > c:\ziel.txt
$input = Get-Content C:\ziel.txt
$ip127 = $input
foreach($line in $ip127){
if($line -notlike '127.0.'){
echo $line >> $temp
}
}
$path = "c:\ziel.txt"
Remove-Item $path
ren $temp $path
$input = Get-Content C:\ziel.txt
$akti = $input
foreach($line in $akti){
if($line -notlike 'Aktive'){
echo $line >> $temp
}
}
Remove-Item $path
ren $temp $path
$input = Get-Content C:\ziel.txt
$proto = $input
foreach($line in $proto){
if($line -notlike 'Proto'){
echo $line >> $temp
}
}
Remove-Item $path
ren $temp $path
$input = Get-Content C:\ziel.txt
$ster = $input
foreach($line in $ster){
if (-not($line.Contains(':'))){
echo $line >> $temp
}
}
Remove-Item $path
ren $temp $path
$input = Get-Content C:\ziel.txt
$v6 = $input
foreach($line in $v6){
if($line -notlike '::'){
echo $line >> $temp
}
}
Remove-Item $path
ren $temp $path
$input = Get-Content C:\ziel.txt
$inter = $input
foreach($line in $inter){
if(-not($line.Contains('0.0.0.'))){
echo $line >> $temp
}
}
Remove-Item $path
ren $temp $path
$input = Get-Content C:\ziel.txt
foreach ($temp in $input)
{
$String = $temp
$zwischen = $String.Remove(0,32) | Out-file -FilePath $kurz -Append
}
$auft = Get-Content $kurz
foreach ($line in $auft)
{
$String = $line.Split(" ")
$zwischen = $String[0] | Out-file -FilePath $aufget -Append
}
Remove-Item $path1
Remove-Item $path
Remove-Item $kurz
Ren $aufget c:\$_.name
Move-Item -Path C:\$_.name -Destination C:\local\dateien
}
Zuletzt bearbeitet: