2015-09-18 6 views
1

У меня есть пакетный файл, который я создал ниже:CMD командной строки DIR Batch File

TITLE Project Folders 
DIR S:\"Project Folder 2014\Projects" /T:C /O:-N > S:\MyFolder\dir01.txt 
DIR S:\"Project Folder 2014\Projects" /T:W /O:-N > S:\MyFolder\dir02.txt 
DIR S:\"Project Folder 2014\Projects" /T:A /O:-N > S:\MyFolder\dir03.txt 
S: 
CD MyFolder 
REN dir01.txt dir01.txt.old 
REN dir02.txt dir02.txt.old 
REN dir03.txt dir03.txt.old 
FINDSTR /V "Volume Directory .. bytes" dir01.txt.old > dir01.txt 
FINDSTR /V "Volume Directory .. bytes" dir02.txt.old > dir02.txt 
FINDSTR /V "Volume Directory .. bytes" dir03.txt.old > dir03.txt 
DEL dir01.txt.old dir02.txt.old dir03.txt.old 
PAUSE 

Я хотел бы знать, если кто-то может помочь мне стать ближе к тому, верхний и нижний колонтитулы удалены из dir > dir.txt. Я не могу использовать голый формат bc. Я использую дату, созданную, измененную и доступную для мониторинга каждого проекта. Затем я импортирую эти текстовые файлы в Excel. Мне любопытно, есть ли способ сделать это с помощью пакета, поэтому мне не придется отбирать текстовые файлы каждый раз в Excel.

+0

Хотя 'S: \ "Имя папки"' работает, то лучше вложить весь путь: ' "S: \ Folder Name"' – Stephan

+0

[Кроссовое вывешены] (Http: // superuser.com/q/974842/87805) в SU – kenorb

ответ

3

Проведите его в findstr с регулярными выражениями, чтобы он тянул строки, начинающиеся с числа (даты являются первым столбцом в списке каталогов по умолчанию). Что-то вроде этого:

dir "S:\Project Folder 2014\Projects" | findstr /R "^[0-9]" > S:\MyFolder\dir01.txt 
+0

Я попробовал, но не понимаю логику регулярных выражений, «^ [1-9]» возвратил 7 случайных строк. Не могли бы вы разработать или объяснить свою логику. Кажется, это было бы систематическим, потому что DIR всегда будет возвращать первые 5 строк с помощью пути, метку тома для диска, тома Serial #, пустую строку, каталог диска: папка, пустая строка. Вот почему я использовал конкретный FINDSTR для удаления строк. – MLowry54

+1

Проверьте вывод 'findstr /?'. Регулярное выражение должно возвращать все строки, начинающиеся с цифры (0-9). (Я просто скорректировал диапазон/класс символов, чтобы включить нуль). Карет '' '- это то, что говорит ему, чтобы проверить начало строки для этой цифры. Поскольку строки, на которые вы ссылаетесь (метка тома и т. Д.), Не начинаются с цифры, эта команда 'findstr' исключает эти нежелательные строки. – Marc

+0

Спасибо за помощь. findstr /? очевидно полезно, но есть только так много мастеринга, что я могу сделать в одном месте, сидя за раз; может быть, после обеда я смогу собрать энергию. Я noob с CMD и только вчера создал свои первые пакетные файлы (к сожалению), но всегда есть место для улучшения и времени для изучения. Спасибо еще раз за помощь; Я просто подозревал, что это будет более легкое решение. Я знаю, что это легко можно увидеть в проводнике Windows для просмотра этих значений, но я стараюсь максимально автоматизировать этот процесс. Время для начала работы с некоторыми Excel VBA 8^$ – MLowry54

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

  • Нет связанных вопросов^_^