Frage von Wukii, 21

Powershell Skript ohne Funktion?

Hallo,

ich versuch momentan ein Skript zu schreiben um eine vom Benutzer gewählte Datei zu starten in dem er den Ordner und den namen eingibt. Leider funktioniert es nicht so wie ich das will. Das Skript schaut etwa so aus:

cls $a= read-Host $b= read-Host

$Word = New-Object -comobject Word.Application $Word.Visible = $true $Dokument = $Word.Documents.Open("C:\ $a \ $b")

was mach ich falsch das er die variable nicht akzeptiert ?

Vielen Dank für eure Hilfe.

Antwort
von Etter, 9

Soo ich schmeiß mal n bissl was in den Raum.

1. Nimm die Leerzeichen raus bei dem Open

2. Warum die Variable $Dokument? Die macht keinen Sinn. Schmeiß des raus

3. Hast du dran gedacht die Dateiendung mit anzugeben (z.B. .docx)?

Hier mal eine ausgebesserte Version:


$a= read-Host "Bitte Pfad angeben"
$b= read-Host "Bitte Dateinamen angeben"

$path = "$a\$b"

if(Test-Path $path) {
$Word = New-Object -comobject Word.Application
$Word.Visible = $true
$Word.Documents.Open($path)
}
else{
Write-Host "$path nicht gefunden"
}

Du gibst dabei den Dateipfad, sowie den Dateinamen mit Endung an, also eig. alles wie gehabt. Allerdings wird hierbei geprüft, ob die Datei vorhanden ist. Wenn nicht, so wird dir eine Fehlernachricht ausgegeben mit dem gegebenen Pfad.

Achja und man muss den kompletten Pfad angeben, also auch das Laufwerk mit "C:\".

https://bitbucket.org/snippets/Ettar/eKBGk

Dort findest du nochmal eine stark überarbeitete Variante. Es muss keine Endung mehr angegeben werden und es wird geprüft, ob die Datei vorhanden ist.

Kommentar von Etter ,

Achja bei dem was ich auf Bitbucket gepostet habe kann man die Dateiendung auch angeben, muss aber nicht.

Falls du Fragen zum Script hast, kannst du mir gerne schreiben.

Antwort
von geri3d, 12

leider kenn ich mich in powershell nicht aus aber warscheinlich wird der ausdruck in den gänsefüschen nicht ausgewertet und du müsstest "C.\" + $a + "\" + $b oder ähnlich schreiben.


Keine passende Antwort gefunden?

Fragen Sie die Community