Хорошо, что-то простое просто не работает для меня. У меня есть командлет, который принимает один параметр. Я пытаюсь вызвать командлет в пакетном файле Windows. Пакетный файл содержит:Вызов командлетов powershell из командного файла 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
}
Когда я исполняю файл летучей мыши он просто бежит к завершению (без сообщений об ошибках), и это, кажется, не создайте файл temp.txt.
Я могу запустить командный файл powershell в командной строке PS, но не в cmd!
У кого-нибудь есть идеи, что может быть неправильным?
Благодаря
Johannes: cmd.exe - это приложение Win32 (хотя многие люди все еще считают его DOS command.com). [Вопрос должен быть отредактирован) – grawity
любое окончательное решение с полным исходным кодом об этом? – Kiquenet