Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Command Line Windows
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Программное обеспечение printer-friendly view
View previous topic :: View next topic  
Author Message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Thu Jun 10, 2010 15:49    Post subject: Command Line Windows Reply with quote

После завершения операций консольными приложениями (UPX, Lame, другие) окно командной строки исчезает с экрана. Какой параметр Windows (XP) отвечает за то, чтобы оно оставалось на виду после определенных действий? И где его найти?

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

Так же помню про историю командной строки, но не помню или даже не знаю как её вызвать.
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Thu Jun 10, 2010 16:11    Post subject: Reply with quote

ask-rus wrote:
После завершения операций консольными приложениями (UPX, Lame, другие) окно командной строки исчезает с экрана. Какой параметр Windows (XP) отвечает за то, чтобы оно оставалось на виду после определенных действий? И где его найти?

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

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

Если в самой консоли, то клавиши вверх-вниз вызывают поочерёдно ранее выполнявшиеся команды (запоминаются только в пределах самой консоли, глобальной истории нет). Можно ещё вызвать историю в виде диалога клавишей F7.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Thu Jun 10, 2010 17:24    Post subject: Re: Command Line Windows Reply with quote

ask-rus wrote:
После завершения операций консольными приложениями (UPX, Lame, другие) окно командной строки исчезает с экрана.
Запускай такие команды строкой %comspec% /k команда параметры
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Thu Jun 10, 2010 17:43    Post subject: Reply with quote

Я предпочитаю юзать бат-файлик, который делает паузу после завершения работы 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

Разумеется, пути к запускаемым прогам нужно указывать полные и в кавычках.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…


Last edited by MVV on Thu Jun 10, 2010 17:52; edited 2 times in total
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Thu Jun 10, 2010 17:45    Post subject: Re: Command Line Windows Reply with quote

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

Как это будет выглядеть?
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Thu Jun 10, 2010 17:49    Post subject: Reply with quote

Первая кнопка вызывает пользовательскую команду 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, во втором случае - крестиком или любой клавишей.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Thu Jun 10, 2010 18:03    Post subject: Reply with quote

Гибрид:
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
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Thu Jun 10, 2010 18:13    Post subject: Reply with quote

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

Отлично работает. Благодарю!
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Thu Jun 10, 2010 18:25    Post subject: Reply with quote

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" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
Для продолжения нажмите любую клавишу . . .

_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Thu Jun 10, 2010 18:35    Post subject: Reply with quote

Возьми %COMMANDER_PATH%\SOFT\LAME\lame.exe в двойные кавычки) все параметры с пробелами должны быть в кавычках. А то система думает, что параметр с именем файла для запуска заканчивается пробелом после слова Total. Smile
В большинстве случаев при использовании внутренних параметров ТК типа %P, %N и т.п. ТК сам обрамляет параметры в кавычки, если нужно.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Thu Jun 10, 2010 20:27    Post subject: Reply with quote

Я выбрал вариант с батником, но, думаю, здесь тоже надо довести до конца:
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:
~ не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
Для продолжения нажмите любую клавишу . . .

Почти аналогично.
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Thu Jun 10, 2010 20:56    Post subject: Reply with quote

Эм... А зачем по две штуки двойных кавычек? Это ж эквивалентно их отсутствию. Параметр командной строки заканчивается первым пробельным символом, который не располагается в строке, заключенной в кавычки:
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
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Thu Jun 10, 2010 21:36    Post subject: Reply with quote

MVV
Загрузил Very Happy
ask-rus
Достаточно одних двойных кавычек: "%COMMANDER_PATH%\SOFT\LAME\lame.exe"
Или помести TC в папку, полное имя которой не содержит пробелов

Кстати, окна, открытые командой cmd /k я закрываю вызывая x.bat (жму x и enter) с содержимым
Code:
exit
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Fri Jun 11, 2010 00:21    Post subject: Reply with quote

Quote:
Достаточно одних двойных кавычек: "%COMMANDER_PATH%\SOFT\LAME\lame.exe"

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

Насколько я понял, он удаляет обрамляющие кавычки, если после /C или /K параметр начинается с кавычки. При этом он не задумывается, что может нарушить командную строку. У меня лично при запуске программы из папки с пробелом оно работало именно в указанным мной варианте - то есть, с дополнительным обрамлением кавычками всей командной строки, передаваемой командному интерпретатору после /C (то есть, одна кавычка перед путем к программе, другая - в конце строки параметров).
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Fri Jun 11, 2010 00:57    Post subject: Reply with quote

Quote:
Для нормальных приложений - достаточно. А cmd.exe...
Фак!
Впрочем, я всегда говорил, что пробелы это зло. Располагайте программы, которые запускаете из ком.строки, по путям не содержащим пробелов и избежите половину проблем.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Программное обеспечение All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group