Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

POWERSHELL mehrere Programme aus .txt lesen und ausführen

Frage Entwicklung Batch & Shell

Mitglied: deiferl

deiferl (Level 1) - Jetzt verbinden

10.08.2011 um 12:13 Uhr, 7785 Aufrufe, 3 Kommentare

Hallo,

bin neu in der wunderbaren Welt der Powershell und stehe vor meinem ersten Problem:

Es sollen in einer .txt hinterlegte Programme zu Testzwecken gestartet werden.Zu erst habe ich eine .txt angelegt, in welcher die betreffenden .exe und Programmpfade genannt sind.
zB.:
C:\programme\Adobe\Reader 9.0\Reader\AcroRd32.exe
C:\programme\Microsoft Office\Office12\WINWORD.EXE
C:\programme\SAP\SapSetup\setup\SAL\SapLogon.s8l

Mit folgenden Zeilen erstelle ich nun eine Vergleichsliste in einer .ps1

># Programme starten
Switch -file "h:\pss\ps1\SWListCompared.txt" {
default {Invoke-Item $_}
}


Mit switch lese ich den Inhalt der Datei zeilenweise ein und übergebe die Zeilen jeweils an invoke-item um das Programm zu starten (soweit die Idee)
Die Programme werden auch gestartet, also die Funktion wäre prinzipiell gegeben. Dabei bekomme ich aber immer Fehlermeldungen:

>Invoke-Item : Das Argument kann nicht an den Parameter "Path" gebunden werden, da es sich um eine leere Zeichenfolge handelt.
Bei H:\pss\ps1\Run-SWList2.ps1:31 Zeichen:25

default {Invoke-Item <<<< $_}

CategoryInfo : InvalidData: ( : ) [Invoke-Item], ParameterBindingValidationException

FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyStringNotAllowed,Microsoft.PowerShell.Commands.InvokeItemCommand"



Das Problem scheint also die Pfadangabe der Variablen $_ für invoke-item zu sein, ohne Pfadangabe kann ich aber nicht direkt an invoke-item übergeben.
Selbes Problem habe ich auch mit einer foreach-Schleife und Übergabe an invoke-item.
Ich denke, ich habe hier einen groben Verständnisfehler, komme aber nicht darauf und bitte euch um tatkräftige Unterstützung.
Mitglied: Logan000
10.08.2011 um 13:31 Uhr
Moin moin

Die gute Nachricht zuerst: Wie du schon vermutet hast ...
also die Funktion wäre prinzipiell gegeben.
liegt der "Fehler" nicht in deinem Skript. Das funktioniert genau so wie du es programmiert hast.

Invoke ist hier nicht das Problem. Das rennt los und führt aus.
Es mosert nur rum wenn der Pfad nicht existiert oder, wie in deinem Fall, keiner angegeben wird.

Das Switch macht auch nur seinen Job und liest deine SWListCompared.txt zeilenweise aus.
Aber wer immer diese SWListCompared.txt erstellt hat, sollte dafür sorgen das sie keine leeren Zeilen enthält.
Oder Du prüfst in deinem Skript, vor dem invoke ab, ob da villeicht ein leerer Parameter im Anflug ist.

Gruß L.
Bitte warten ..
Mitglied: deiferl
10.08.2011 um 15:49 Uhr
Moin,

Danke für den Tip (eigentlich weisst einen der Fehler ja drauf hin ) Und tatsächlich.
Die SWList.txt ist das Ergebnis eines compare.

$strCompared = Compare $strReference $strDifference -includeEqual -excludeDifferent
$strCompared | ft InputObject -hidetableheaders -auto | out-file -filepath "h:\pss\ps1\SWListCompared.txt"

Da wird am Anfang eine Leerzeile geschrieben und am Ende nochmals zwei. In den zu vergleichenden Dateien gibts die aber nicht. Wie kann ich die denn entfernen? Irgendwie steh ich jetzt aufm Schlauch.

Nochmals, Büdde, ein kleiner Schubs. Danke.
Bitte warten ..
Mitglied: deiferl
10.08.2011 um 16:48 Uhr
Manchmal sieht man den Wald vor Bäumen nicht. Ich denke kurz und gut ist folgendes:

  1. Programme starten
Switch -file "h:\pss\ps1\SWListCompared.txt" {
default {if ($_ -ne "") {
Invoke-Item $_}}
}

Damit gebe ich die Zeilen ohne Inhalt nicht an invoke-item weiter!
Thanks for "Schubs". So funktioniert es ohne Fehler.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
PowerShell: ACL-Befehle als User ausführen (3)

Frage von playmen zum Thema Batch & Shell ...

Microsoft
PowerShell Script auf Domänen-Rechnern ausführen (3)

Frage von Hoerli zum Thema Microsoft ...

Batch & Shell
gelöst Batch E-Mail Body aus txt lesen und einfügen (9)

Frage von pdiddo zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows 10

Plattformdienst für unbekannte Geräte (7023)

Tipp von KMUlife zum Thema Windows 10 ...

Administrator.de Feedback

Umgangsformen auf der Seite

(9)

Information von Frank zum Thema Administrator.de Feedback ...

Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(11)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
Windows Server Komplettspiegelung (15)

Frage von pdiddo zum Thema Windows Server ...

Batch & Shell
gelöst Dir tc Befehl unter Windows 10 macht Probleme (14)

Frage von sugram zum Thema Batch & Shell ...

Windows Server
Windows Server 2016 RDS Remoteapp Anzeigefehler (11)

Frage von qlnGenius zum Thema Windows Server ...