Ok coś tak prostego po prostu nie działa dla mnie. Dostałem cmdlet, który akceptuje pojedynczy parametr. Próbuję wywołać cmdlet w pliku wsadowym systemu Windows. Plik wsadowy zawiera:Wywoływanie poleceń cmdlet powershell z pliku wsadowego Windows
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
Mój plik PS1 znowu nie robiąc nic szczególnego:
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
}
Kiedy uruchomić plik bat to właśnie prowadzi do zakończenia (żadne komunikaty o błędach) i nie wydaje się utwórz plik temp.txt.
Mogę uruchomić plik poleceń powershell w wierszu polecenia PS, ale nie w cmd!
Ktoś ma jakieś pomysły, co może być nie tak?
Dzięki
Johannes: cmd.exe to aplikacja Win32 (choć wiele osób wciąż uważa ją za DOS command.com). [Pytanie powinno zostać zredagowane] – grawity
każde ostateczne rozwiązanie z pełnym kodem źródłowym na ten temat? – Kiquenet