|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - перекодировка значения переменной с рус. буквами в DOS-кодировку, для передачи в cmd. |
|
|
PowerShell - перекодировка значения переменной с рус. буквами в DOS-кодировку, для передачи в cmd.
|
Старожил Сообщения: 286 |
Добрый.
результат: Как перекодировать значение переменной (с русскими буквами), чтобы в сmd передавалось правильно, а не "????????" *нужно запустить приложение, именно через cmd, но из powersshell. В пути запуска есть русские буквы. Нашел что-то - https://xaegr.wordpress.com/2007/01/24/decoder/ но не разобрался как пользоваться. Помогите разобраться. Спасибо. |
|
Отправлено: 22:19, 14-06-2021 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать 9119, опишите Вашу задачу, а не выбранный метод решения.
|
Отправлено: 22:48, 14-06-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 286
|
Профиль | Отправить PM | Цитировать нужно запустить приложение с большим количеством аргументов из-под PS.
$tmp1 = "E:\!!Youtube\АРХИВ\!временное\Ролики\!в работе\tmp\1" $yandex_tts_path = "E:\!!Youtube\АРХИВ\!временное\Ролики\!в работе\проект\bal4yndx" $yandex_exe = "$yandex_tts_path\bal4yndx.exe" $api_key_Y = "XXXXXXXXXXXXXXXXXXXXXX" $Text1 = (get-content -encoding utf8 -path "$tmp1\выкладка.txt")[4..1000] $alena_voice1 = "-p -k $api_key_Y -l ru-RU -n alena -s 1.0 -t $Text1 -enc utf8 -d $yandex_tts_path\dic.dic -w $tmp1\Book0001.wav" start-process "$yandex_exe" -arg "$alena_voice1" -wait из-под PS не стартует, ошибки нет, просто окно блымает от приложения и все, при этом тоже самое из-под сmd - работает без проблем. *знаю что путь длинный.... и рус буквы. но тут как есть. надо решить задачу с текущими длинными путями и русскими буквами Вот и хотел собрать весь путь в переменную и послать в сmd, но затыка с кодировкой. |
Последний раз редактировалось 9119, 14-06-2021 в 23:28. Отправлено: 23:04, 14-06-2021 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать 9119, попробуйте так:
$tmp1 = "E:\!!Youtube\АРХИВ\!временное\Ролики\!в работе\tmp\1" $yandex_tts_path = "E:\!!Youtube\АРХИВ\!временное\Ролики\!в работе\проект\bal4yndx" $yandex_exe = "$yandex_tts_path\bal4yndx.exe" $api_key_Y = "XXXXXXXXXXXXXXXXXXXXXX" $Text1 = (Get-Content -Encoding UTF8 -Path "$tmp1\выкладка.txt")[4..1000] $alena_voice1 = "-p", "-k", $api_key_Y, "-l", "ru-RU", "-n", "alena", "-s", "1.0", "-t", $Text1, "-enc", "utf8", "-d", "$yandex_tts_path\dic.dic", "-w", "$tmp1\Book0001.wav" Start-Process -FilePath $yandex_exe -ArgumentList $alena_voice1 -Wait |
Отправлено: 23:31, 14-06-2021 | #4 |
Старожил Сообщения: 286
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 23:49, 14-06-2021 | #5 |
Ветеран Сообщения: 1758
|
|
Отправлено: 00:11, 15-06-2021 | #6 |
Старожил Сообщения: 286
|
Профиль | Отправить PM | Цитировать Foreigner, попробовал, также.
даже если через ключ -f указать проге text.txt тотже эффект Может все таки можно как-то вывести все значение в сmd? "$yandex_exe $alena_voice1" E:\!!Youtube\АРХИВ\!временное\Ролики\!в работе\проект\bal4yndx\bal4yndx.exe -p -k ключ -l ru-RU -n alena -s 1.0 -t ТЕКСТ РОЛИКА ТЕКСТ РОЛИКА ТЕКСТ РОЛИКА ТЕКСТ РОЛИКА ТЕКСТ РОЛИКА ТЕКСТ РОЛИКА ТЕКСТ РОЛИКА ТЕКСТ РОЛИКА -enc utf8 -d E:\!!Youtube\АРХИВ\!временное\Ролики\!в работе\проект\bal4yndx\dic.dic -w E:\!!Youtube\АРХИВ\!временное\Ролики\!в работе\tmp\1\Book0001.wav PS E:\!!Youtube\АРХИВ\!временное\Ролики Меган\!в работе\tmp\1> "$yandex_exe $alena_voice1" | cmd Microsoft Windows [Version 10.0.19042.804] (c) Корпорация Майкрософт (Microsoft Corporation), 2020. Все права защищены. E:\!!Youtube\АРХИВ\!временное\Ролики Меган\!в работе\tmp\1>E:\!!Youtube\?????\!?????????\?????? ?????\!? ??????\??????\bal4yndx\bal4yndx.exe -p -k AQVNzlDc64-DyrBNGhq95ANGwwHwFSAEZooHnOiX -l ru-RU -n alena -s 1.0 -t ????? ?????? ????? ?????? ????? ?????? ????? ?????? ????? ?????? ????? ?????? ????? ?????? ????? ?????? -enc utf8 -d E:\!!Youtube\?????\!?????????\?????? ?????\!? ??????\??????\bal4yndx\dic.dic -w E:\!!Youtube\?????\!?????????\?????? ?????\!? ??????\tmp\1\Book0001.wav "E:\!!Youtube\?????\!?????????\??????" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. |
Последний раз редактировалось 9119, 18-07-2021 в 16:30. Отправлено: 00:29, 15-06-2021 | #7 |
Ветеран Сообщения: 1758
|
Цитата 9119:
|
|
Отправлено: 00:59, 15-06-2021 | #8 |
fascinating rhythm Сообщения: 6626
|
Профиль | Отправить PM | Цитировать У меня вот так работает прямо из PS:
$text = "надо решить задачу с текущими длинными путями и русскими буквами" & "D:\Downloads\balcon\balcon.exe" -n Irina -t $text И сами аргументы тоже пересмотреть надо, например, -l выводит список голосов, зачем это? Сократите по-максимуму количество аргументов и переменных, затем, тестируя каждый шаг, начинайте наращивать их количество. Так вы поймёте, где именно возникает проблема. |
------- Отправлено: 09:32, 15-06-2021 | #9 |
Crazy Сообщения: 1218
|
Профиль | Отправить PM | Цитировать 9119, кроме того, использование балаболки принципиально?
Можно и так: |
------- Отправлено: 14:05, 15-06-2021 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - [решено] Командлет в качестве значения переменной | maslinaV | Скриптовые языки администрирования Windows | 8 | 25-05-2015 13:05 | |
CMD/BAT - Присвоение значения переменной | starav | Скриптовые языки администрирования Windows | 1 | 30-05-2013 09:23 | |
Прочие БД - [решено] SQL код триггера для случая передачи (в батник) значения одного поля | NecroTYN | Программирование и базы данных | 1 | 13-07-2011 06:09 | |
MySQL - Хранение значения переменной в MySQL-базе | ManHack | Программирование и базы данных | 7 | 11-07-2009 10:02 | |
VBS/WHS/JS - Вывод значения переменной в сообщение | la_vanille_ciel | Программирование и базы данных | 3 | 09-04-2008 11:55 |
|