2014-12-25 2 views
0

Я хочу использовать команду dir и иметь имя файла как 1-й столбец, дату создания даты 2-го столбца и время изменения даты в качестве третьего столбца.Команда Dir с временем создания и последним измененным временем

Как я мог достичь этого?

http://www.computerhope.com/dirhlp.htm

Это показывает /T может быть использовано, но не знает, как использовать его, потому что dir /TCAW не перечисляет формат мне нужно.

ответ

4

Как говорит Кристофер Живописец, команда DIR не может сделать это напрямую.

Но есть простая строка командной строки, которая отображает вашу информацию без информации заголовка или нижнего колонтитула. Эта команда содержит только файлы. Он работает до тех пор, пока ваша местность отображает отметки времени, используя 3 элемента, разделенных пробелами. Например, мои метки времени в США отображаются как mm/dd/yyyy hh:mm:ss am.

for /f "tokens=1-4*" %A in ('dir /a-d /tc^|findstr "^[0-9]"') do @echo %E %A %B %C %~tE 

Изменение /a-d в /a, если вы хотите включить каталоги. Или просто удалите /a-d целиком, если вы хотите как файлы, так и каталоги, но вы хотите исключить скрытые и системные файлы/каталоги.

Вот та же команда в отформатированный пакетного сценария:

@echo off 
for /f "tokens=1-4*" %%A in (
    'dir /a-d /tc^|findstr "^[0-9]"' 
) do echo %%E %%A %%B %%C %%~tE 

мне не нравится формат вывода с именем файла в передней, так как ширина имя меняется - это трудно прочитайте вывод, потому что столбцы не выстраиваются в линию. Я предпочитаю, чтобы поставить имя файла в конце:

@echo off 
for /f "tokens=1-4*" %%A in (
    'dir /a-d /tc^|findstr "^[0-9]"' 
) do echo %%A %%B %%C %%~tE %%E 
+0

Почему? :) Серьезно .. это хорошая мысль (+1 для этого), но сценарий .bat не имеет цели в 2014 году. Если вы действительно хотите писать сценарии на платформе Windows, они должны смотреть на PowerShell. –

+0

Ты супер парень с множеством талантливых способностей, как играть на флейте :) Хотя это слишком медленно, он служит именно тем, что мне нужно. Не могли бы вы объяснить, что это за критические %% A, %% B и так далее? – Jack

2

DIR не поддерживает то, что вы пытаетесь сделать. Идентификатор/T: Fileld может отображать только один набор информации времени за раз. Я не уверен, что вы пытаетесь сделать, но я вижу, что у вас есть опыт работы на C#. Вы можете написать свое единственное консольное приложение, которое выводит вас так, как вы, и вместо этого вызывается.

Смежные вопросы