Command Line Windows
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2  Next  :| |:
Total Commander -> Программное обеспечение

#1: Command Line Windows Author: ask-rusLocation: Russian Federation PostPosted: Thu Jun 10, 2010 15:49
    —
После завершения операций консольными приложениями (UPX, Lame, другие) окно командной строки исчезает с экрана. Какой параметр Windows (XP) отвечает за то, чтобы оно оставалось на виду после определенных действий? И где его найти?

Где-то на форуме об этом упоминалось...

Так же помню про историю командной строки, но не помню или даже не знаю как её вызвать.

#2:  Author: CaptainFlintLocation: Москва PostPosted: Thu Jun 10, 2010 16:11
    —
ask-rus wrote:
После завершения операций консольными приложениями (UPX, Lame, другие) окно командной строки исчезает с экрана. Какой параметр Windows (XP) отвечает за то, чтобы оно оставалось на виду после определенных действий? И где его найти?

Не помню, чтобы такой параметр вообще существовал. Есть соответствующая опция в PIF-ярлыках, но она влияет только на этот ярлык, а не глобально. К тому же, если не ошибаюсь, PIF обрабатываются через command.com, а не через cmd.exe, что может приводить к неприятным неожиданностям.

ask-rus wrote:
Так же помню про историю командной строки, но не помню или даже не знаю как её вызвать.

Если в самой консоли, то клавиши вверх-вниз вызывают поочерёдно ранее выполнявшиеся команды (запоминаются только в пределах самой консоли, глобальной истории нет). Можно ещё вызвать историю в виде диалога клавишей F7.

#3: Re: Command Line Windows Author: Tol!kLocation: Арзамас PostPosted: Thu Jun 10, 2010 17:24
    —
ask-rus wrote:
После завершения операций консольными приложениями (UPX, Lame, другие) окно командной строки исчезает с экрана.
Запускай такие команды строкой %comspec% /k команда параметры

#4:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Jun 10, 2010 17:43
    —
Я предпочитаю юзать бат-файлик, который делает паузу после завершения работы UPX, и на любую клавишу закрывается. Так как обычно после завершения таких команд командная строка мне не нужна, только информация.
Вот пример файлика run_pause.bat:
Code:
@echo off
%*
echo --------
pause
cls

Вроде работает. Просто указываешь этот файл и передаешь ему прогу для запуска с параметрами. Если надо вызвать другой командный файл, то поставь перед его именем дополнительный параметр call:
Code:
run_pause.bat upx.exe -d compressed.exe

Code:
run_pause.bat call make_backup.bat

Разумеется, пути к запускаемым прогам нужно указывать полные и в кавычках.


Last edited by MVV on Thu Jun 10, 2010 17:52; edited 2 times in total

#5: Re: Command Line Windows Author: ask-rusLocation: Russian Federation PostPosted: Thu Jun 10, 2010 17:45
    —
Tol!k wrote:
ask-rus wrote:
После завершения операций консольными приложениями (UPX, Lame, другие) окно командной строки исчезает с экрана.
Запускай такие команды строкой %comspec% /k команда параметры

На примере кнопки:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\SOFT\LAME\lame.exe
-b 192 -q 0 --lowpass 22 %N "%O_repack.mp3"
%COMMANDER_PATH%\ICO\lame.ico
К о д и р о в а т ь  в *.MP3 (192 Kbps, CBR)

0
-1

Как это будет выглядеть?

#6:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Jun 10, 2010 17:49
    —
Первая кнопка вызывает пользовательскую команду em_UPX, поэтому править надо саму команду в файле usercmd.ini.

А вторая:
Code:
TOTALCMD#BAR#DATA
cmd.exe /k %COMMANDER_PATH%\SOFT\LAME\lame.exe
-b 192 -q 0 --lowpass 22 %N "%O_repack.mp3"
%COMMANDER_PATH%\ICO\lame.ico
К о д и р о в а т ь  в *.MP3 (192 Kbps, CBR)

0
-1

Или:
Code:
TOTALCMD#BAR#DATA
run_pause.bat %COMMANDER_PATH%\SOFT\LAME\lame.exe
-b 192 -q 0 --lowpass 22 %N "%O_repack.mp3"
%COMMANDER_PATH%\ICO\lame.ico
К о д и р о в а т ь  в *.MP3 (192 Kbps, CBR)

0
-1


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

#7:  Author: Tol!kLocation: Арзамас PostPosted: Thu Jun 10, 2010 18:03
    —
Гибрид:
Code:
TOTALCMD#BAR#DATA
cmd.exe /c %COMMANDER_PATH%\SOFT\LAME\lame.exe
-b 192 -q 0 --lowpass 22 %N "%O_repack.mp3" &pause
%COMMANDER_PATH%\ICO\lame.ico
К о д и р о в а т ь  в *.MP3 (192 Kbps, CBR)

0
-1

Закрывается крестиком или любой клавишей, но не нужен run_pause.bat

#8:  Author: ask-rusLocation: Russian Federation PostPosted: Thu Jun 10, 2010 18:13
    —
MVV wrote:
Первая кнопка вызывает пользовательскую команду em_UPX, поэтому править надо саму команду в файле usercmd.ini.

Вывод для той кнопки, что я затёр:
Code:
TOTALCMD#BAR#DATA
D:\run_pause.bat "%COMMANDER_PATH%\SOFT\UPX\upx.exe" --best --compress-icons=0
%P%N
D:\Total Commander\TOTALCMD.EXE,3



-1

Отлично работает. Благодарю!

#9:  Author: ask-rusLocation: Russian Federation PostPosted: Thu Jun 10, 2010 18:25
    —
Tol!k wrote:
Гибрид:
Code:
TOTALCMD#BAR#DATA
cmd.exe /c %COMMANDER_PATH%\SOFT\LAME\lame.exe
-b 192 -q 0 --lowpass 22 %N "%O_repack.mp3" &pause
%COMMANDER_PATH%\ICO\lame.ico
К о д и р о в а т ь  в *.MP3 (192 Kbps, CBR)

0
-1

Закрывается крестиком или любой клавишей, но не нужен run_pause.bat

Дословно:
Quote:
"D:\Total" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
Для продолжения нажмите любую клавишу . . .

#10:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Jun 10, 2010 18:35
    —
Возьми %COMMANDER_PATH%\SOFT\LAME\lame.exe в двойные кавычки) все параметры с пробелами должны быть в кавычках. А то система думает, что параметр с именем файла для запуска заканчивается пробелом после слова Total. Smile
В большинстве случаев при использовании внутренних параметров ТК типа %P, %N и т.п. ТК сам обрамляет параметры в кавычки, если нужно.

#11:  Author: ask-rusLocation: Russian Federation PostPosted: Thu Jun 10, 2010 20:27
    —
Я выбрал вариант с батником, но, думаю, здесь тоже надо довести до конца:
Code:
TOTALCMD#BAR#DATA
cmd.exe /c ""%COMMANDER_PATH%\SOFT\LAME\lame.exe""
-b 192 -q 0 --lowpass 22 %N "%O_repack.mp3" &pause
%COMMANDER_PATH%\ICO\lame.ico
К о д и р о в а т ь  в *.MP3 (192 Kbps, CBR)


-1

Quote:
~ не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
Для продолжения нажмите любую клавишу . . .

Почти аналогично.

#12:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Jun 10, 2010 20:56
    —
Эм... А зачем по две штуки двойных кавычек? Это ж эквивалентно их отсутствию. Параметр командной строки заканчивается первым пробельным символом, который не располагается в строке, заключенной в кавычки:
Code:
param1" еще идет "и_еще_идет" и все еще первый" о,уже_второй


Но вообще скажу по-секрету, что CMD.exe обрабатывает параметры тупорыло. Вместо того чтобы обработать то, что ему дали после /K или /C, как нормальную командную строку, он пытается снять со всей последующей командной строки обрамляющие кавычки... Чем в микрософте думали на этот раз, не знаю, но так как кавычки не допускают вложенности в силу совпадения открывающей и закрывающей оной, он зачастую удаляет нужную кавычку, поэтому нужно передавать ему командную строку, заключенную во внешнюю пару кавычек. Поэтому при работе с CMD.exe правильным будет использовать следующий абсурдный вариант:
Code:
TOTALCMD#BAR#DATA
cmd.exe /c ""%COMMANDER_PATH%\SOFT\LAME\lame.exe"
-b 192 -q 0 --lowpass 22 %N "%O_repack.mp3" &pause"
%COMMANDER_PATH%\ICO\lame.ico
К о д и р о в а т ь  в *.MP3 (192 Kbps, CBR)


-1

То есть, CMD.exe получит следующую строку после ключа /C:
Code:
""%COMMANDER_PATH%\SOFT\LAME\lame.exe" -b 192 -q 0 --lowpass 22 %N "%O_repack.mp3" &pause"

Из которой он удалит крайние кавычки и корректно выполнит оставшуюся команду, то есть, вызовет lame.exe с заданными параметрами и скушает Твикс. Smile


Кстати, закрыть окно, ожидающее нажатия любой клавиши, можно с помощью мыши, выбрав команду Вставить контекстного меню (при непустом буфере обмена). Very Happy

#13:  Author: Tol!kLocation: Арзамас PostPosted: Thu Jun 10, 2010 21:36
    —
MVV
Загрузил Very Happy
ask-rus
Достаточно одних двойных кавычек: "%COMMANDER_PATH%\SOFT\LAME\lame.exe"
Или помести TC в папку, полное имя которой не содержит пробелов

Кстати, окна, открытые командой cmd /k я закрываю вызывая x.bat (жму x и enter) с содержимым
Code:
exit

#14:  Author: MVVLocation: Ростов-Дон PostPosted: Fri Jun 11, 2010 00:21
    —
Quote:
Достаточно одних двойных кавычек: "%COMMANDER_PATH%\SOFT\LAME\lame.exe"

Для нормальных приложений - достаточно. А cmd.exe скажет:
Quote:
- Ы-ы, гыляди, кавычка! Нада удалить ее, и в конце тоже.

Насколько я понял, он удаляет обрамляющие кавычки, если после /C или /K параметр начинается с кавычки. При этом он не задумывается, что может нарушить командную строку. У меня лично при запуске программы из папки с пробелом оно работало именно в указанным мной варианте - то есть, с дополнительным обрамлением кавычками всей командной строки, передаваемой командному интерпретатору после /C (то есть, одна кавычка перед путем к программе, другая - в конце строки параметров).

#15:  Author: Tol!kLocation: Арзамас PostPosted: Fri Jun 11, 2010 00:57
    —
Quote:
Для нормальных приложений - достаточно. А cmd.exe...
Фак!
Впрочем, я всегда говорил, что пробелы это зло. Располагайте программы, которые запускаете из ком.строки, по путям не содержащим пробелов и избежите половину проблем.



Total Commander -> Программное обеспечение


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2  Next  :| |:
Page 1 of 2

Powered by phpBB © 2001, 2005 phpBB Group