Ok, etwas so einfaches funktioniert einfach nicht für mich. Ich habe ein Cmdlet, das einen einzelnen Parameter akzeptiert. Ich versuche, ein Cmdlet in einer Windows-Stapeldatei aufzurufen. Die Batch-Datei enthält:Aufruf von Powershell-Cmdlets aus der Windows-Stapeldatei
cd %SystemRoot%\system32\WindowsPowerShell\v1.0
powershell Set-ExecutionPolicy Unrestricted
powershell 'C:\convert-utf8-to-utf16.ps1 C:\test.txt'
powershell Set-ExecutionPolicy Restricted
pause
Meine ps1-Datei wieder nichts zu tun Besonderes:
function convert-utf8-to-utf16 {
$tempfile = "C:\temp.txt"
set-ExecutionPolicy Unrestricted
get-content -Path $args[0] -encoding utf8 | out-file $tempfile -encoding Unicode
set-ExecutionPolicy Restricted
}
Wenn ich die bat-Datei ausführen es läuft nur bis zum Abschluss (keine Fehlermeldungen), und es scheint nicht zu Erstellen Sie die Datei temp.txt.
Ich kann die Powershell-Befehlsdatei an der PS-Eingabeaufforderung ausführen, aber nicht in cmd!
Wer hat irgendwelche Ideen, was könnte falsch sein?
Dank
Johannes: cmd.exe ist eine Win32-Anwendung (obwohl viele Leute es immer noch als DOS-Befehl.com denken). [Die Frage sollte bearbeitet werden] – grawity
jede endgültige Lösung mit dem vollständigen Quellcode darüber? – Kiquenet