Ошибка команда не использует параметр с именем файла
Вывод списка файлов и подкаталогов каталога. Вызванная без параметров команда dir выводит метку тома и серийный номер, за которыми следует список каталогов и файлов на диске, включая их имена, дату и время последнего изменения. Для файлов dir выводит также расширение имени и размер в байтах. Команда dir также выводит общее число перечисленных файлов и каталогов, их общий размер и свободное пространство (в байтах) на диске.
Синтаксис
dir [диск:][путь][имя_файла] [. ] [ /p] [/q] [/w] [/d] [/a[[ :]атрибуты]] [/o[[:]порядок_сортировки]] [/t[[ :]поле_сортировки]] [/s] [/b] [/l] [ /n] [/x] [/c] [/4]
Параметры
[диск:][путь] Задание диска и каталога, список файлов которого будет выведен. [имя_файла] Задание файла или группы файлов, сведения о которых требуется вывести. /p Постраничный вывод сведений, т. е. с паузой после заполнения экрана. Для продолжения просмотра необходимо нажать любую клавишу. /q Вывод сведений о владельце файла. /w Вывод сведений в несколько колонок до пяти имен файлов или каталогов в каждой строке. /d Соответствует /w, но с сортировкой по столбцам. /a [[:] атрибуты] Выводит имена только тех файлов и каталогов, которые имеют указанные атрибуты. Если параметр /a не указан, команда dir выводит имена всех файлов, за исключением системных и скрытых. Если параметр /a указан без атрибутов, команда dir выводит имена всех файлов, включая скрытые и системные. Ниже приведен список значений, которые могут быть использованы при задании параметра атрибуты. Двоеточие (:) является необязательным. Значения из таблицы могут использоваться в любых комбинациях без пробела между ними.Значение | Описание |
---|---|
h | Скрытые файлы |
s | Системные файлы |
d | Каталоги |
a | Файлы, готовые к архивированию |
r | Файлы, доступные только для чтения |
-h | Файлы, не являющиеся скрытыми |
-s | Файлы, не являющиеся системными |
-d | Только файлы (не каталоги) |
-a | Файлы, не изменявшиеся после последнего архивирования |
-r | Файлы, не имеющие атрибута «Только чтение» |
Значение | Описание |
---|---|
n | Сортировка по именам в алфавитном порядке |
e | Сортировка по расширениям в алфавитном порядке |
d | Сортировка по дате и времени от ранних к поздним |
s | Сортировка по размеру от меньших к большим |
g | Сортировка с группированием каталогов перед файлами |
-n | Сортировка по именам в обратном алфавитном порядке (от Z к A) |
-e | Сортировка по расширению в обратном алфавитном порядке (от .ZZZ к .AAA) |
-d | Сортировка по дате и времени от поздних к ранним |
-s | Сортировка по размеру от больших к меньшим |
-g | Сортировка с группировкой каталогов после файлов |
Значение | Описание |
---|---|
c | Создание |
a | Последнее обращение |
w | Последняя запись |
Примечания
Допускается использование нескольких имен_файлов. Разделяйте имена файлов пробелом, запятой или точкой с запятой. Для вывода группы файлов допускается применение подстановочных знаков (? и *) в параметре имя_файла.
Для вывода списка подгруппы файлов и подкаталогов можно использовать подстановочные знаки (? и *).
Если параметр /a используется более чем с одним значением параметра атрибуты, команда dir выведет имена только тех файлов, все атрибуты которых совпадают с заданными. Например, при использовании параметра /a со значениями атрибутов r и -h в формате /a:r-h или /ar-h команда dir выведет имена файлов, являющихся одновременно скрытыми и защищенными от записи.
Если указано несколько значений порядка_сортировки, команда dir сортирует имена файлов сначала по первому условию, затем по второму и т. д. Например, если указан ключ /o со значениями e и -s порядка_сортировки в формате /o:e-s или /oe-s, команда dir отсортирует имена каталогов и файлов по расширениям, затем от больших файлов к меньшим и выведет окончательный результат. В результате сортировки по алфавиту файлы без расширений будут идти вначале, затем имена каталогов, а потом имена файлов с расширениями.
Параметры команды dir могут быть предварительно заданы включением команды set для переменной среды DIRCMD в файл Autoexec.nt. В команде set dircmd может быть использована любая допустимая комбинация параметров команды dir, включая расположение и имя файла.
Например, чтобы использовать переменную среды DIRCMD для задания вывода в расширенном формате (/w) по умолчанию, в файле Autoexec.nt необходимо ввести следующую строку:
При однократном использовании команды dir можно отменить параметр с помощью переменной среды DIRCMD. Для этого введите параметр, который требуется отменить, в командной строке dir, указав перед ним знак минус. Например:
Чтобы изменить параметры DIRCMD, используемые по умолчанию, введите следующую команду:
set=новый_параметр
Новые параметры по умолчанию останутся в силе для всех последующих команд dir, пока команда set dircmd не задаст новые параметры или не будет перезагружен компьютер.
Чтобы удалить все параметры по умолчанию, введите следующую команду:
Чтобы просмотреть текущие параметры переменной среды DIRCMD, введите следующую команду:
Команда set выведет список переменных среды и их параметров. Дополнительные сведения о этой команде смотрите здесь.
Примеры
Чтобы вывести подряд все каталоги в алфавитном порядке, в несколько колонок и с паузой после заполнения каждого экрана, убедитесь, что корневой каталог является текущим, и введите следующую команду:
Команда dir выводит имя корневого каталога, имена его подкаталогов и имена файлов (включая расширения) в этом каталоге. Затем выводятся имена подкаталогов и имена файлов в каждом каталоге дерева каталогов.
Для изменения предыдущего примера так, чтобы команда dir не выводила имена каталогов, введите следующую команду:
Чтобы напечатать список каталогов, введите следующую команду:
Если указать параметр prn, список каталогов отправляется на принтер, подключенный к порту LPT1. Если принтер подключен к другому порту, необходимо заменить параметр prn именем этого порта.
Вывод команды dir также может быть направлен в файл при замене prn на имя файла. Кроме того, можно также ввести путь. Например, для направления вывода команды dir в файл Dir.doc в каталоге Records введите следующую команду:
Ошибка создания файла
Чтобы вывести список всех файлов с расширением .txt во всех каталогах диска C, введите следующую команду:
Команда dir выводит на экран алфавитный список файлов, удовлетворяющих заданному шаблону, в несколько колонок с паузой после заполнения каждого экрана.
Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).
Новый раздел о средствах командной строки в рамках этого же проекта расположен здесь
Я застрял на проблеме, которую не могу понять. Для моей задачи я должен сделать некоторую работу с файлами .txt в C, и, в частности, я должен передать имена файлов, используя параметры командной строки. Допустим, у нас есть эта часть кода:
Меня смущает то, как вы работаете с этими аргументами? Где вы размещаете свой .txt файл? Я прочитал сто тем, но все еще не могу обернуть голову вокруг этого. Я использую XCode и работаю на Mac. Нужно ли каким-либо образом использовать Терминал для работы с этим кодом? Любой пролить свет на эту тему будет принята с благодарностью.
3 ответа
В XCode вы можете указать аргументы для передачи вашей программе в схеме. Перейдите в Product-> Scheme-> Edit Scheme и перейдите на вкладку «Аргументы» (см. Скриншот).
Затем любой файл загружается из того места, где XCode размещает исполняемый файл. Самый простой способ узнать, где это находится, - щелкнуть правой кнопкой мыши продукт и «показать в поиске» (см. Скриншот).
Вне XCode, например в окне терминала просто укажите параметры после имени команды, например, ./testCommandLine test.txt . Любой открытый файл - если не указан абсолютный путь - запускает поиск из текущего рабочего каталога.
Надеюсь, это поможет.
Если задан относительный путь к файлу, fopen откроет файлы относительно текущего рабочего каталога. Если вы передадите абсолютный путь к вашей программе, то fopen будет использовать его. Например, если ваш file.txt находится в /home/User/file.txt , вы можете передать всю эту строку в вашу программу, и fopen найдет ее.
Шаг 1, чтобы проверить, что у вас есть параметр.
После этого вы можете использовать параметр (ы) напрямую. Обратите внимание, что argv[0] будет путем / именем исполняемого файла, argv[1] будет первым параметром (если он был передан) и так далее. При открытии файлов они должны быть либо помещены в рабочий каталог, либо вы должны указать fopen путь в дополнение к имени файла. Рабочий каталог может быть или не быть каталогом, содержащим ваш исполняемый файл, в зависимости от вашей среды сборки.
В Windows, как вы получаете доступ к аргументам, передаваемым при запуске командного файла?
Например, допустим, у меня есть программа с именем hello.bat . Когда я вхожу hello -a в командную строку Windows, как я могу сообщить своей программе, что она -a была передана в качестве аргумента?
Как и другие уже говорил, параметры , передаваемые через командную строку можно получить в пакетных файлах с пометкой %1 в %9 . Есть также два других токена, которые вы можете использовать:
- %0 это исполняемый файл (пакетный файл) имя , как указано в командной строке .
- %* это все параметры, указанные в командной строке - это очень полезно, если вы хотите переслать параметры в другую программу.
Есть также много важных методов, о которых нужно знать в дополнение к простому способу доступа к параметрам.
Проверка, был ли передан параметр
Это делается с помощью конструкций like IF "%
1"=="" , что верно, если и только если никакие аргументы не были переданы вообще. Обратите внимание на символ тильды, который приводит к удалению любых окружающих кавычек из значения %1 ; без тильды вы получите неожиданные результаты, если это значение включает двойные кавычки, включая возможность синтаксических ошибок.
Обработка более 9 аргументов (или просто облегчение жизни)
Если вам нужно получить доступ более чем к 9 аргументам, вы должны использовать команду SHIFT . Эта команда сдвигает значения всех аргументов на одно место, так что %0 принимает значение %1 , %1 принимает значение %2 и т. Д. %9 Принимает значение десятого аргумента (если он есть), который не был доступен ни для одной переменной перед вызовом SHIFT (введите команда SHIFT /? для дополнительных параметров).
SHIFT также полезно, когда вы хотите легко обработать параметры, не требуя, чтобы они были представлены в определенном порядке. Например, скрипт может распознавать флаги -a и -b в любом порядке. Хороший способ разбора командной строки в таких случаях
Эта схема позволяет вам анализировать довольно сложные командные строки, не сходя с ума.
Подстановка параметров партии
Для параметров, представляющих имена файлов, оболочка предоставляет множество функций, связанных с работой с файлами, которые недоступны никаким другим способом. Эта функциональность доступна с конструкциями, которые начинаются с %
Например, чтобы получить размер файла, переданного в качестве аргумента, используйте
Чтобы получить путь к каталогу, из которого был запущен командный файл (очень полезно!), Вы можете использовать
Вы можете просмотреть весь спектр этих возможностей, введя CALL /? в командной строке.
ren "Ярлык для TOTALCMD".Ink TotalCmd.Ink будет работать?
SF 1 апреля, 2008 - 21:34
Должно. Попробуйте. Если нет - сообщите, будем разбираться.Al 2 апреля, 2008 - 08:06
Кавычка должна быть ПОСЛЕ cd, я же писал - путь, а не командаAl 2 апреля, 2008 - 08:08
И ren всесте с сd в отдой строке нельзя, все по порядочку, по командочке.Сначала в нужный каталог, потом дальше. т.е. расписать все на бумаге словами, столбиком, а потом все переводить в команды, и если заработает - начинать оптимизировать, наводить красоту.
Phoenix 2 апреля, 2008 - 14:56
С путем разобрался, я в папке Рабочй Стол, возникла другая проблема, я прописываю: ren "Ярлык для TOTALCMD".Ink TotalCmd.Ink выбивает "Не удается найти указанный файл"
SF 2 апреля, 2008 - 15:22
Кавычки после полного имени файла, с расширением.
Phoenix 3 апреля, 2008 - 13:23
Все равно выбивает "Не удается найти указанный файл", хотя он там есть
mike 3 апреля, 2008 - 14:26
Фениксу. Кавычек я не ставлю ещё cо времён CP/M. Всё всегда переименовывалось. Но 1) убедись, что файл Ярлык для TOTALCMD.Ink у тебя в текущем дире действительно есть, для чего введи dir Ярлык для TOTALCMD.Ink или, что ИМХО лучше, dir *TOTALCMD.* 2) убедись, что кириллица в имени файла нигде не путается с латиницей. (Не накололи ли тебя на 1-ое апреля?) А вообще, чтобы переименовать ярлык, щёлкни по нему на рабочем столе правой кнопкой, выбери "Переименовать" и именуй, как хошь. :)Sens 3 апреля, 2008 - 14:28
ren "%USERPROFILE%\Рабочий стол\Ярлык для TOTALCMD.lnk" TotalCmd.lnk
> Все равно выбивает "Не удается найти указанный файл", хотя он там есть
Так может он уже переименован, поэтому и не находит? ;)
Sens 3 апреля, 2008 - 14:41
> Кавычек я не ставлю ещё cо времён CP/M.
Не стоит давать советов, в которых не уверены. Если путь к файлу содрежит пробел, то в Windows надо ОБЯЗАТЕЛЬНО закавычить.
> вообще, чтобы переименовать ярлык, щёлкни по нему на рабочем столе правой кнопкой, выбери "Переименовать" и именуй, как хошь. :)
Mike, как модно говорит "вы жжОте непадецки" ;) Видимо человеку надо именно так, а не иначе.
Phoenix 3 апреля, 2008 - 21:00
Огромное спасибо всем кто помог мне, и особенно Sens’у>CD здесь ни к чему.
ren "%USERPROFILE%\Рабочий стол\Ярлык для TOTALCMD.lnk" TotalCmd.lnk
mike 4 апреля, 2008 - 01:10
>Если путь к файлу содрежит пробел, то в Windows надо ОБЯЗАТЕЛЬНО закавычить.>Видимо человеку надо именно так.
Батник, видимо, разрабатывает.
Инна К)) 16 мая, 2009 - 14:46
На экране церез 10 минут после включения кмпа начинает мигать кажд. 2 сек.окно C\Windows\system32\cmd.exe, то черное, то белое,в черном - слова Ошибка в синтаксисе команды и все. Остальное работает.Что делать? ПОМОГИТЕ!Логик 17 мая, 2009 - 00:27
Эдуард 18 мая, 2009 - 10:35
Меня умиляют эти вопросы. Ответ на них один: обратитесь к специалисту. Как в той персидской басне: старик пришел к соседу и просит у него меру для зерна, тот отвечает: "Иди к другому, у меня нет сита".
- Почему? Я прошу меру?
- У тебя трясутся руки, ты просыпешь зерно на пол. Придешь за совком и веником. Соберешь. Зерно надо будет просеять. А сита у меня нет. Иди к другому.
Логик 18 мая, 2009 - 16:14
Эдуард > :) Следующий вопрос будет "Чем и как". Потом "где взять".Почти любой вирус лечится просто - перестановкой OC.
>У тебя трясутся руки, ты просыпешь зерно на пол. Придешь за совком и веником. Соберешь. Зерно надо будет просеять. А сита у меня нет. Иди к другому.
Читайте также: