| imho.ws |
![]() |
|
|
|
# 1 |
|
Junior Member
Регистрация: 18.02.2004
Адрес: Краснодар
Сообщения: 94
![]() ![]() |
Работаем с командной строкой...
Несколько вопросов:
1. Иногда, на запрос выдается много информации и она не помещается на экран. Тогда все прокручивается и в результате можно видеть лишь то, что поместилось на последней страничке. Как сделать, чтобы информация выдавалась частями, чтобы успевать прочесть все? 2. Когда указываешь название директории, состоящее из нескольких слов, все слова названия, начиная со второго воспринимаются, как параметр, как указать, что это - именно название директории. Например, "Program Files". |
|
|
|
|
# 2 |
|
::VIP::
Регистрация: 23.05.2005
Пол: Male
Сообщения: 1 064
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1 Для команды dir существует параметр /p который позволяет выводить данный постранично, а вобще можно воспользоваться оператором пернаправления (например в файл)
Пример rar /? > c:\rar.txt итого получим на диске C:\ файл rar.txt с раровской помощью, но работает этот способ не для всех программ. 2 Надо заключать имена файло в которых есть пробелы в кавычки "C:\Program Files\..." и все будет нормально.
__________________
Умный не тот кто все знает, а тот кто знает где узнать то чего он не знает. Life is only what you make it.
|
|
|
|
|
# 3 |
|
СуперМод
IMHO Консультант 2005-2009 Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отс
Пол: Male
Сообщения: 14 525
![]() |
1. Существует волшебная команда "more"
Например, Код:
dir *.* |more Предназначена же она специально для обработки вывода команд, в которых нет собственной фичи для постраничного вывода.
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила! Распространенье наше по планете Особенно заметно вдалеке: В общественном парижском туалете Есть надписи на русском языке В. Высоцкий |
|
|
|
|
# 4 | |
|
Full Member
Регистрация: 02.08.2005
Адрес: город Ха, регион 27
Сообщения: 549
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
__________________
Как ни улучшится погода, У нас своя Природа-мать. У нас любое время года Задача перезимовать. |
|
|
|
|
|
# 5 | |
|
::VIP::
Регистрация: 23.05.2005
Пол: Male
Сообщения: 1 064
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Sambotey без обид =)
__________________
Умный не тот кто все знает, а тот кто знает где узнать то чего он не знает. Life is only what you make it.
|
|
|
|
|
|
# 6 |
|
KpTeaM
Регистрация: 31.10.2002
Адрес: Russia
Пол: Male
Сообщения: 3 261
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Еще как вариант - запустить команду через cmd.exe, и если в свойствах окна оставлен буфер как по дефолту, то после выполнения можно проскроллировать вверх.
__________________
Над струнами вен моих Лезвия осени, Их сталь леденящая В просинь рук просится... ©Темнозорь |
|
|
|
|
# 7 | |
|
СуперМод
IMHO Консультант 2005-2009 Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отс
Пол: Male
Сообщения: 14 525
![]() |
Цитата:
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила! Распространенье наше по планете Особенно заметно вдалеке: В общественном парижском туалете Есть надписи на русском языке В. Высоцкий |
|
|
|
|
|
# 8 |
|
Junior Member
Регистрация: 18.02.2004
Адрес: Краснодар
Сообщения: 94
![]() ![]() |
Hatifnatt: Но переводить самому имена в дос формат не так уж просто, в любом случае для того кто задает такие вопросы.[QUOTE]
Действительно, не просто. Hatifnatt, расскажи поподробнее, как это делается... Заодно еще один глупый вопрос: как из командной строки прочитать текстовый файл... Ну или может быть можно картинку просмотреть ) |
|
|
|
|
# 9 | |
|
СуперМод
IMHO Консультант 2005-2009 Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отс
Пол: Male
Сообщения: 14 525
![]() |
Цитата:
2. Командой more file.txt Но работает это только для файлов с кодировкой cp866 (ДОС) или англоязычных. FAR умеет отображать в том числе и виндовую кодировку.
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила! Распространенье наше по планете Особенно заметно вдалеке: В общественном парижском туалете Есть надписи на русском языке В. Высоцкий |
|
|
|
|
|
# 11 | |
|
Full Member
Регистрация: 02.08.2005
Адрес: город Ха, регион 27
Сообщения: 549
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Имя папки не дожно превышать 8 символов. Лишние отбрасываются, в конце пишем ~1 C:\Program Files пишется как C:\Progra~1, C:\Documents and Settings соответственно C:\Docume~1 (если похожих названий несколько то ~2,~3 и тд). Пробелы не учитываются C:\Documents and Settings\All Users - C:\Docume~1\AllUse~1 Короткие тексты (один или несколько через пробел) читаются командой TYPE , большие с добавлением "|more" как сказал Borland.
__________________
Как ни улучшится погода, У нас своя Природа-мать. У нас любое время года Задача перезимовать. |
|
|
|
|
|
# 12 |
|
Full Member
Регистрация: 26.11.2002
Адрес: Питер
Сообщения: 555
![]() ![]() ![]() ![]() ![]() ![]() |
Я бы не рекомендовал использовать имена в коротком формате, если в этом нет острой необходимости. Могу назвать как минимум две причины:
1. На нтфс генерация коротких имён может быть отключена. 2. Суффикс может быть не только ~1, а любой другой вида ~число. Причём число может быть даже многозначным. Да, можно сказать, что генерация коротких имён включена по умолчанию и отключают её редко. И короткое имя для "c:\program files" скорее всего будет "c:\progra~1". Но! Речь идёт не о своей системе, которую знаешь как облупленную. Генерация коротких имён вполне может быть отключена неопытным пользователем каким-нибудь "твикером" для ускорения работы ОС. А мне уже встречались "c:\progra~2" пару раз и я зарёкся после этого использовать короткие имена. Более того, кроме тривиального случая с "program files" вполне реальная ситуация, когда куча пользовательских папок (например с фотками) могут иметь совершенно непонятные короткие имена типа "деньро~1", "деньро~2", "деньро~3" т.д. Сам видел
|
|
|
|
|
# 13 |
|
Full Member
Регистрация: 02.08.2005
Адрес: город Ха, регион 27
Сообщения: 549
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Человек просил рассказать как это делается - рассказали, а когда и как пользоваться сам решит.
А потребность в коротком формате может возникнуть не только в командной строке, но и при написании пакетных (*.bat) файлов. Например для архивации с удаленного компьютера. Или когда длинные имена в кавычках почему-то не работают.
__________________
Как ни улучшится погода, У нас своя Природа-мать. У нас любое время года Задача перезимовать. |
|
|
|
|
# 15 | |
|
::VIP::
Регистрация: 23.05.2005
Пол: Male
Сообщения: 1 064
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Сорри за некоторый оффтоп.
__________________
Умный не тот кто все знает, а тот кто знает где узнать то чего он не знает. Life is only what you make it.
|
|
|
|
|
|
# 16 | |
|
Full Member
Регистрация: 26.11.2002
Адрес: Питер
Сообщения: 555
![]() ![]() ![]() ![]() ![]() ![]() |
Hatifnatt
Цитата:
Задача: из командного файла найти короткое имя соответствующее заданому длиному. Ограничения: линейка NT (NT4,XP,2000,2003,...) ибо возиться для 9х нет ни желания ни самой системы для тестирования ![]() Решение: Командный файл, который будет использован для определения короткого имени (GetShortName.cmd): Код:
@setlocal enableextensions @if /i "%~1" == "/full" goto full @set _sn_=%~s2 @call:name %_sn_% @endlocal & set %~1=%_sn_% @goto:eof :full @endlocal & set %~2=%~s3 @goto:eof :name @set _sn_=%~nx1 call GetShortName [/full] var file где /full - получить полный путь к файлу, иначе только имя с расширением var - переменная среды, которой будет присвоено короткое имя file - имя файла Тестируем (TestShortName.cmd): Код:
@echo off call GetShortName sn1 "C:\Program Files\Common Files" echo ^<%sn1%^> call GetShortName /full sn1 "C:\Program Files\Common Files" echo ^<%sn1%^> call GetShortName sn2 "C:\Program Files\Common Files\Microsoft Shared\TextConv\EXCEL32.CNV" echo ^<%sn2%^> call GetShortName /full sn2 "C:\Program Files\Common Files\Microsoft Shared\TextConv\EXCEL32.CNV" echo ^<%sn2%^> , например сделать проверку параметров, существование файла/папки и т.д.
|
|
|
|
|
|
# 17 |
|
Junior Member
Регистрация: 04.04.2003
Сообщения: 181
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Smitis
Многа букв И отдельный батник держать, только ради того, чтоб узнать короткое имя некузяво. Проверка папки:Код:
@ECHO OFF
SET my_dir=%ProgramFiles%\Common Files\Microsoft Shared
FOR %%A IN ("%my_dir%") DO IF EXIST %%~sA\NUL ECHO %%~sA
PAUSE
%ProgramFiles% написал, потому что у меня нету C:\Program Files , она у меня обзывается C:\TOOLS
|
|
|
|
|
# 18 |
|
Full Member
Регистрация: 26.11.2002
Адрес: Питер
Сообщения: 555
![]() ![]() ![]() ![]() ![]() ![]() |
Premium
Одно и то же часто можно сделать разными способами Особено это касается программирования.Я специально оформил в виде отдельного батника, что бы было универсальное решение. И, кстати, его можно оптимизировать (писал, как я уже говорил, наспех, ещё и ночью...) Вот доработанный вариант: Код:
@setlocal enableextensions @if /i "%~1" == "/full" goto full @endlocal & set %~1=%~nxs2 @goto:eof :full @endlocal & set %~2=%~s3 @goto:eof |
|
|
|
|
# 20 |
|
::VIP::
Звезда первого сезона Молчун-2004 Регистрация: 24.08.2002
Сообщения: 1 575
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Sambotey
BAT (batch - пакетный) и CMD (command - командный) - обычные текстовые файлы, содержащие вызовы встроенных в ОС команд и вызов программ (любых, лишь бы система их могла запустить). Синтаксис прост: одна строка - одна команда. Список команд можно получить, набрав в консоли "help"; справку по отдельной команде - "help <имя команды>" или "<имя команды> /?". Некоторые команды ОС представляют собой отдельные программы - exe-файлы; они хранятся в директории %windir%\system32 - запускай их в консоли с параметром "/?" для выяснения "шо-за-хрень". Ну и еще можно еще добавить возможность отключения эхо-повтора команды (т.е. вывода ее текста на экран перед исполнением) при помощи символа '@' в начале строки и перенаправления вывода в файл: "команда" > "файл" - создает новый файл, "команда" >> "файл" - добавляет в существующий. З.Ы. Да и виндовом хелпе (тот, что вызывается из меню "Пуск") есть достаточно полная справка по этому вопросу...
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы! Последний раз редактировалось Ghost; 10.11.2005 в 09:26. Причина: склероZzz... |
|
|