Запуск проги через cmd и Выполнить с передачей рус. параметра

0000

Имеется консольная прога proga.exe, которая в качестве параметра принимает имя файла, в который надо выводить результат.
Выполнение в консоли: proga.exe Файл.txt приводит к нужному результату.
Выполнение в Выполнить proga.exe Файл.txt на выходе файл с корябликами.
Дело в кодировке.
Есть какой нибудь способ сделать задуманное?
В принципе перед выполнением в Выполнить можно сконвертить "Файл" в нужную кодировку, только вот не пойму никак в какую :(

klyv

а если в .cmd запихнуть?

0000

Сделал cmd и вызвал его.

proga.exe Файл.txt

Ничего не изменилось.
Есть предположение вызывать cmd /a /c (cmd "a&&c" но что то совместно не получается =(

lubanj

попробуй открыть файл вордом/эксплорером, а не блокнотом

0000

В корябликах не содержимое, а имя, т.е. не Файл.txt, а №%;.txt

lubanj

ну не пиши русскими буквами или переименуй файл после создания. можешь батничек написать, который будет сам переименовывать/конвертить название файла в нужную кодировку

0000

Вся проблема в том, что я не знаю какое имя файла будет после того, как я передам его в Выполнить.

Andbar

Видимо, имя файла передаётся в ansi-кодировке, а proga.exe ожидает oem-кодировку. Или наоборот.
Если есть доступ к исходникам программы, добавь в начало вызов SetFileApisToANSI/SetFileApisToOEM.

0000

Спасибо , сделал через временный файл с английским названием :) Не очень красиво, зато работает.

lubanj

да не за что :grin:

schipuchka1

а что при перетаскивании на прогу файла? :)

lubanj

и какой номер у тебя выводит команда chcp?
пользуясь случаем, передаю привет Деметру!

0000

Да это не требуется.

schipuchka1

866, но вообще не так уж и сложно поменять
Оставить комментарий
Имя или ник:
Комментарий: