Страница 1 из 1

Запуск cmd.exe /c "App Name.exe"- как

Добавлено: Пт сен 09, 2011 20:57
Alextp
Есть console app. У него путь с пробелом. (У short name - тоже пробел. странно). Нужно запустить cmd.exe /c "app name.exe" >1.txt. Если app name.exe(с пробелом) взять в "", то запуска нет. cmd ругается.


Добавлено спустя 2 минуты:

ps "D:\Program Files\Embarcadero\RAD Studio\8.0\bin\brcc32.exe"

Re: Запуск cmd.exe /c "App Name.exe"- как

Добавлено: Пт сен 09, 2011 21:27
Tol!k
Alextp писал(а):У short name - тоже пробел. странно
Значит не short, настоящий short – d:\progra~1\embarc~1\radstu~1\8.0\bin\brcc32.exe
Как запустить?
пробуй
cmd.exe /c start "" /wait "name.exe" >1.txt

Добавлено: Пт сен 09, 2011 21:48
Alextp
Спасибо. не пробовал, сделал вот что

Код: Выделить всё

cmd.exe /c "D:\Program Files\Embarcadero\RAD Studio\8.0\bin\bcc32.exe" "D:\T\ab.cpp" >"11.txt"
-error!

Код: Выделить всё

cmd.exe /c""D:\Program Files\Embarcadero\RAD Studio\8.0\bin\bcc32.exe" "D:\T\ab.cpp" >"11.txt""
-Run

Добавлено: Сб сен 10, 2011 00:05
MVV
Это вроде известный факт, что командную строку, которая передаётся cmd после параметров /k или /c, нужно заключать в дополнительную пару кавычек (если путь к самой программе без кавычек, вроде можно не заключать, cmd удаляет только внешние кавычки с переданной комстроки). Какой идиот придумал это - не знаю, но что идиот - сомнений нет.

Добавлено: Сб сен 10, 2011 10:39
Alextp
MVV
Это был неизвестный факт..
ps Приношу извинения CaptainFlint за слишком сокращенное 1е письмо

edit
Там дело не в сокращениях, а в плохой формулировке

Добавлено: Сб сен 10, 2011 12:07
MVV
Когда-то меня это очень сбило с толку. Открой консоль и напиши cmd /?, там будет описано это поведение.

Добавлено: Вс сен 11, 2011 18:20
Alextp
All
Еще вопрос
Есть unicode file 1.txt. Если сделать type 1.txt>11, то в выводе 11 видим Ansi, не unicode. Можно ли как-то (не обяз-но через type) получить вывод (команда >файл_вывода) в Unicode?

или ">" всегда создает Ansi?

Добавлено: Вс сен 11, 2011 19:38
CaptainFlint
Alextp писал(а):или ">" всегда создает Ansi?
Эта операция тупо перенаправляет в файл всё, что выводится программой в стандартный поток, будь то ANSI-текст, юникодный текст или вообще бинарный поток данных а-ля картинка или исполняемый файл. Превращение юникодного файла в ANSI при перегоне его через type — это инициатива самой type. Если из файла выкинуть BOM-сигнатуру, то type не опознает кодировку и выдаст юникодное содержимое файла без изменений.

Добавлено: Вс сен 11, 2011 20:09
Alextp
понятно. Мне надо получить Unicode with BOM file.

Добавлено: Вс сен 11, 2011 21:30
CaptainFlint
Alextp писал(а):Мне надо получить Unicode with BOM file.
BOM я упомянул лишь для объяснения ситуации. Если программа выводит юникод (хоть с BOM, хоть без него), то после перенаправления выходного потока в файл через ">" в файле окажется именно юникод. Ты в своём эксперименте получал ANSI не из-за того, что перенаправление так хитро работает, а из-за того, что программа type тебе выдала ANSI, только и всего.

Добавлено: Вс сен 11, 2011 21:41
Alextp
Понятно (я и тот пост понял)- спасибо.

Добавлено: Вс сен 11, 2011 21:51
MVV
У cmd.exe есть параметр /U - с ним вывод в файл будет в Unicode. Насчёт BOM не знаю.

Добавлено: Вс сен 11, 2011 21:56
Tol!k
cmd может конвертировать ANSI в Unicode, но без BOM

Код: Выделить всё

cmd /u /c type 1.txt>11