Jump to content

Powershell Liste abarbeiten


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen

 

Ich habe folgendes anliegen.

 

Ich habe eine Liste von Computern, also im C:\Temp\pc.txt

 

PC001

PC002

PC003 etc

 

aufjedem dieser PCs befindet sich ebenfalls im C:\Temp die Datei convert.ini, von dieser Datei müssten jeweils die Zeilen die mit Rem beginnen in ein seperates Dokument geschrieben werden(C:\User\Test\Desktop\dok.txt). Also ein Dokument für alle PCs. 

Ich bekomme das einfach nicht hin, dass die PC in der Liste abgearbeitet werden und dann noch in das Dokument geschrieben werden. 

 

Kann mir da jemand helfen?

Link zu diesem Kommentar
Das habe ich bis jetzt gemacht und es funktioniert auch soweit, nur weiss ich nicht wie ich das mit der Liste auch noch hinbringe.

 

$filepath=Get-Childitem "c:\Temp\Convert.ini"

$ausgabe="C:\Users\Test\Desktop\dok.txt"

 

foreach($file in $filepath){

foreach($line in (get-content $file.FullName)){

if($line -like 'REM*'){

$server + ';' + $line| Out-File $ausgabe -Append

}

}

}

cls
Link zu diesem Kommentar

Danke für die schnelle Antwort

 

Ich habe das jetzt mal so gemacht 

 

 

foreach($rechner in (Get-Content C:\Temp\pc.txt)){
   foreach($line in (Get-Childitem \\$rechner\c$\Temp\Convert.ini)){
 
 
#$filepath=Get-Childitem "c:\Temp\Convert.ini"
$ausgabe="C:\Users\Gar\Desktop\welp.txt"
 
foreach($file in $filepath){
foreach($line in (get-content $file.FullName)){
if($line -like 'REM*LP*'){
$server + ';' + $line| Out-File $ausgabe -Append
}
}
}
}
}
 
 
Jedoch werden nur die Einträge vom lokalen PC eingetragen, wenn ich jetzt z.B drei PCs in der pc.txt liste habe dann werden einfach die Einträge vom lokalen PC dreimal angezeigt, obwohl in den anderen Convert.ini Files etwas anderes steht.
 
Ist in meinem script etwas falsch?
Link zu diesem Kommentar

Ja. Du hast viel zu viel drin.

Die Zeile 2 von mir (foreach($line in (Get-Childitem \\$rechner\c$\Temp\Convert.ini)){) holt den Inhalt der Datei vom Client.

 

Du brauchst nur noch $ausgabe="C:\Users\Gar\Desktop\welp.txt" (das vor dem Teil von mir am besten)

und

if($line -like 'REM*LP*'){
$server + ';' + $line| Out-File $ausgabe -Append
und die Klammer zumachen.
Link zu diesem Kommentar

Also wenn ich es richtig verstanden habe sollte es nun so aussehen?!

 

$ausgabe="C:\Users\Gar\Desktop\welp.txt"
 
 
foreach($rechner in (Get-Content C:\Temp\pc.txt)){
   foreach($line in (Get-Childitem \\$rechner\c$\Temp\Convert.ini)){
 
 
if($line -like 'REM*LP*'){
$server + ';' + $line| Out-File $ausgabe -Append
 
 
}
}
}
 
Das Problem jetzt es schreibt gar nichts mehr also das file wird gar nicht mehr erstellt
Link zu diesem Kommentar

Dann musst du den Fehler suchen.

 

Gib mal zwischen drin Debugmeldungen aus, damit du siehst was passiert.

 

Z.b.:

 

if($line -like 'REM*LP*'){
$server + ';' + $line| Out-File $ausgabe -Append
$line | write-host -foregroundcolor green
}else{
$line | write-host -foregroundcolor red
}
 
oder
nach
foreach($rechner in (Get-Content C:\Temp\pc.txt)){
fügst du
test-path \\$rechner\c$\Temp\Convert.ini
ein, damit du siehst ob die Verbindung zum Client klappt und die Datei existiert.
Link zu diesem Kommentar

Steht der PC Name in rot oder grün da? Das sollte nicht sein. Da sollte die Zeile aus der Textdatei stehen.

 

Poste einmal die Ausgabe von:

$rechner = 'Bitte_einen_Rechner_Aus_der_Txt_datei_eintragen'

foreach($line in (Get-Childitem \\$rechner\c$\Temp\Convert.ini)){

if($line -like 'REM*LP*'){
$server + ';' + $line| Out-File $ausgabe -Append
$line | write-host -foregroundcolor green
}else{
$line | write-host -foregroundcolor red
}
}
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...