complex
Goto Top

Batch lässt sich nicht aus Powershell-Script starten

Guten Morgen Jungs!

stehe vor einem kuriosen Problem und hoffe, ihr könnt mir helfen.
Eins vorne Weg: Ich weiß es gibt leichtere Methoden, welche ich aber schon ausschließen konnte. Ich muss leider diesen komplizierten weg gehen:

Ich möchte ein Bios-Update als Task-Sequenz setzen und bin in diesem Zug um ein Script nicht herum gekommen.
Da das HP-Bios Update-Tool gar nicht gerne mit geänderten Datei-Name der Bios-Files arbeitet, stehe ich vor dem Problem, dass bei jedem Update sich der Filename ändert.

Auszug aus dem Script:

#hier wird zuvor die gecryptete passwort-Datei erstellt. da bei uns jedes Firmen-Laptop ein anderes Bios-Passwort besitzt, muss dies zuvor in der variable $Password erstellt werden und als Biospswd.bin ausgegeben (funktionsfähig!)
& ".\HpqPswd.exe" /p"$password" /f".\Biospswd.bin" /s    

#bios-file definieren, da sich der Filename mit jedem Update ändert. 
$binfile = Get-ChildItem *bin -Exclude Biospswd* -Name  

#batch-Datei erstellen und Inhalt einpflegen
"@echo off   
HPBIOSUPDREC64.exe -pBiospswd.bin -f$binfile -s -b" | Out-File update.bat -Force    

#zuvor erstellte .bat ausführen
start .\update.bat  

die .bat-Datei wird mit dem Inhalt

"@echo off
HPBIOSUPDREC64.exe -pBiospswd.bin -f$binfile -s -b"

erstellt (variable wird ebenfalls mit dem Dateinamen des Bios-Updates übergeben - und ja, es gehört KEIN Leerzeichen zwischen den Commandline-Befehlen), kann aber nicht ausgeführt werden ("Der Befehl "■" ist entweder falsch geschrieben oder konnte nicht gefunden werden").
Jetzt der Clou: kopiere ich den Befehl aus der generierten Batch, füge ihn in ein leeres txt-dokument ein und ändere es zu Batch - funktioniert es...

Was mir ebenfalls aufgefallen ist:
Die durch das Script generierte batch-Datei hat eine größe von 118 Byte. die manuelle über das text-dokument erstellte .bat hat 58 Byte. Wie kann das sein?

Vielen Dank schon mal für eure Hilfe.

Content-ID: 259761

Url: https://administrator.de/contentid/259761

Ausgedruckt am: 25.11.2024 um 07:11 Uhr

emeriks
Lösung emeriks 14.01.2015 aktualisiert um 09:29:20 Uhr
Goto Top
Hi,
Du musst die Batch als ASCII speichern. Dann sollte es gehen.

E.
AndreasHoster
Lösung AndreasHoster 14.01.2015 aktualisiert um 09:29:23 Uhr
Goto Top
Punkt Dateigröße: Schonmal was von Unicode/UTF gehört?
Probiere es doch mal mit
Out-File update.bat -Force -Encoding ascii

Ansonsten, warum eine Batchdatei erstellen und die dann starten?
Warum nicht gleich mit Start-Process den Prozess gleich starten?
complex
complex 14.01.2015 aktualisiert um 09:33:43 Uhr
Goto Top
ohman...*kopf->tisch* vielen vielen Dank!!!
funktioniert - danke face-smile
complex
complex 14.01.2015 um 10:22:39 Uhr
Goto Top
hast recht. hatte es spaßeshalber mit "cmd /c HPBIOSUPDREC64.exe -pBiospswd.bin -f$binfile -s -b" probiert. hätte in dem Fall natürlich auch funktioniert face-smile
PS: bin absoluter PS-Einsteiger - nicht böse sein wenn ich viele Sachen nicht kenne face-smile