Хорошо, что просто так просто не работает для меня. У меня есть командлет, который принимает один параметр. Я пытаюсь вызвать командлет в пакетном файле 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
Мой файл ps1 снова не делает ничего особенного:
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
}
Когда я исполняю файл bat, он просто заканчивается (нет сообщений об ошибках), и он не создает файл temp.txt.
Я могу запустить командный файл powershell в командной строке PS, но не в cmd!
У кого-нибудь есть идеи, что может быть неправильным?
Спасибо