![]() |
Работаем с командной строкой...
Несколько вопросов:
1. Иногда, на запрос выдается много информации и она не помещается на экран. Тогда все прокручивается и в результате можно видеть лишь то, что поместилось на последней страничке. Как сделать, чтобы информация выдавалась частями, чтобы успевать прочесть все? 2. Когда указываешь название директории, состоящее из нескольких слов, все слова названия, начиная со второго воспринимаются, как параметр, как указать, что это - именно название директории. Например, "Program Files". |
1 Для команды dir существует параметр /p который позволяет выводить данный постранично, а вобще можно воспользоваться оператором пернаправления (например в файл)
Пример rar /? > c:\rar.txt итого получим на диске C:\ файл rar.txt с раровской помощью, но работает этот способ не для всех программ. 2 Надо заключать имена файло в которых есть пробелы в кавычки "C:\Program Files\..." и все будет нормально. |
1. Существует волшебная команда "more"
Например, Код:
dir *.* |moreПредназначена же она специально для обработки вывода команд, в которых нет собственной фичи для постраничного вывода. |
Цитата:
|
Цитата:
Sambotey без обид =) |
Еще как вариант - запустить команду через cmd.exe, и если в свойствах окна оставлен буфер как по дефолту, то после выполнения можно проскроллировать вверх.
|
Цитата:
|
Hatifnatt: Но переводить самому имена в дос формат не так уж просто, в любом случае для того кто задает такие вопросы.[QUOTE]
Действительно, не просто. Hatifnatt, расскажи поподробнее, как это делается... Заодно еще один глупый вопрос: как из командной строки прочитать текстовый файл... Ну или может быть можно картинку просмотреть ) |
Цитата:
2. Командой more file.txt Но работает это только для файлов с кодировкой cp866 (ДОС) или англоязычных. FAR умеет отображать в том числе и виндовую кодировку. |
Цитата:
2. Потом команду more file.txt и читаешь |
Цитата:
Имя папки не дожно превышать 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. |
Я бы не рекомендовал использовать имена в коротком формате, если в этом нет острой необходимости. Могу назвать как минимум две причины:
1. На нтфс генерация коротких имён может быть отключена. 2. Суффикс может быть не только ~1, а любой другой вида ~число. Причём число может быть даже многозначным. Да, можно сказать, что генерация коротких имён включена по умолчанию и отключают её редко. И короткое имя для "c:\program files" скорее всего будет "c:\progra~1". Но! Речь идёт не о своей системе, которую знаешь как облупленную. Генерация коротких имён вполне может быть отключена неопытным пользователем каким-нибудь "твикером" для ускорения работы ОС. А мне уже встречались "c:\progra~2" пару раз и я зарёкся после этого использовать короткие имена. Более того, кроме тривиального случая с "program files" вполне реальная ситуация, когда куча пользовательских папок (например с фотками) могут иметь совершенно непонятные короткие имена типа "деньро~1", "деньро~2", "деньро~3" т.д. Сам видел :) |
Человек просил рассказать как это делается - рассказали, а когда и как пользоваться сам решит.
А потребность в коротком формате может возникнуть не только в командной строке, но и при написании пакетных (*.bat) файлов. Например для архивации с удаленного компьютера. Или когда длинные имена в кавычках почему-то не работают. |
xTiez
Цитата:
|
Цитата:
Сорри за некоторый оффтоп. |
Hatifnatt
Цитата:
Задача: из командного файла найти короткое имя соответствующее заданому длиному. Ограничения: линейка NT (NT4,XP,2000,2003,...) ибо возиться для 9х нет ни желания ни самой системы для тестирования ;) Решение: Командный файл, который будет использован для определения короткого имени (GetShortName.cmd): Код:
@setlocal enableextensionscall GetShortName [/full] var file где /full - получить полный путь к файлу, иначе только имя с расширением var - переменная среды, которой будет присвоено короткое имя file - имя файла Тестируем (TestShortName.cmd): Код:
@echo off |
Smitis
Многа букв :) И отдельный батник держать, только ради того, чтоб узнать короткое имя некузяво. Проверка папки: Код:
@ECHO OFF%ProgramFiles% написал, потому что у меня нету C:\Program Files :( , она у меня обзывается C:\TOOLS |
Premium
Одно и то же часто можно сделать разными способами ;) Особено это касается программирования. Я специально оформил в виде отдельного батника, что бы было универсальное решение. И, кстати, его можно оптимизировать (писал, как я уже говорил, наспех, ещё и ночью...) Вот доработанный вариант: Код:
@setlocal enableextensions |
Раз уж зашла речь о *.bat и *.cmd файлах...
Для чего они существуют и где можно узнать синтаксис выражений для их создания? |
Sambotey
BAT (batch - пакетный) и CMD (command - командный) - обычные текстовые файлы, содержащие вызовы встроенных в ОС команд и вызов программ (любых, лишь бы система их могла запустить). Синтаксис прост: одна строка - одна команда. Список команд можно получить, набрав в консоли "help"; справку по отдельной команде - "help <имя команды>" или "<имя команды> /?". Некоторые команды ОС представляют собой отдельные программы - exe-файлы; они хранятся в директории %windir%\system32 - запускай их в консоли с параметром "/?" для выяснения "шо-за-хрень". Ну и еще можно еще добавить возможность отключения эхо-повтора команды (т.е. вывода ее текста на экран перед исполнением) при помощи символа '@' в начале строки и перенаправления вывода в файл: "команда" > "файл" - создает новый файл, "команда" >> "файл" - добавляет в существующий. З.Ы. Да и виндовом хелпе (тот, что вызывается из меню "Пуск") есть достаточно полная справка по этому вопросу... |
Sambotey
в дополнение к сказанному Ghost. Командные файлы еще понимают параметры команденой строки, передаваемые им. И помимо выполнения команд операционной системы, имеют раяд своих, которые помогают управлять последовательностью выполнения % - признак параметра, переданного в данный пакетный файл : - признак метки для перехода CALL - вызов другого пакетного файла из данного, CLS - очистка экрана, ECHO - вывод на экран строки сообщений, EXIT - прервать обработку данного пакетного файла, EXIST- проверить наличие файла на диске, FOR .. IN .. DO - возможность многократного выполнения одной команды MS DOS, GOTO - безусловный переход на строку с заданной меткой, IF - условный переход на строку с заданной меткой, PAUSE- ожидание нажатия клавиши Пользователем, REM - комментарий, SHIFT- сдвиг формальных параметров(возможность обрабатывать больше 10 параметров). Подробнее почитай здесь: _http://www.firststeps.ru/msoffice/win/bats/bats1.html или ищи в яндексе, гугле и т.д. |
Цитата:
|
Хелп по командному процессору находится в файле c:\windows\help\ntcmds.chm
|
| Часовой пояс GMT +4, время: 15:38. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.