Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 7906 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
gelöst Mehrzeiligen Powershell-Befehl mit Batch ausführen (3)

Frage von 133202 zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell - DISK - Als Administrator ausführen (2)

Frage von StfnCstr zum Thema Batch & Shell ...

Batch & Shell
gelöst Werte aus CSV in TXT - Powershell (20)

Frage von Komoran12 zum Thema Batch & Shell ...

Microsoft
gelöst Sysprep: Sofortiges Ausführen des Powershell-Skriptes (1)

Frage von honeybee zum Thema Microsoft ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Server
Bilder aus dem Web mit CSV runterladen (30)

Frage von Yannosch zum Thema Server ...

Server-Hardware
Bestehendes Raid erweitern um 4 gleiche Platten! (Verständnis Fragen) (12)

Frage von Hendrik2586 zum Thema Server-Hardware ...

Windows Update
WSUS 4 (Server 2012 R2) - Windows 10 Updates nicht möglich (12)

Frage von c0d3.r3d zum Thema Windows Update ...