Мне было интересно, как я могу сделать следующее (в Windows)

Мне нужно проверить общее количество символов в полном пути ко всему в каталоге c:\ и всех подкаталогах. Вот команда, которую я использовал:

dir /b /s c:\directory\ > output.csv

/B Используется пустой формат (без информации о заголовке или резюме).

/S Отображает файлы в указанном каталоге и всех подкаталогах.

Проблема в том, что каталог c:\ является проверкой SVN и содержит массу файлов .svn-base, которые я не хочу видеть в файле output.csv. Как мне отфильтровать выходные данные из DIR, чтобы я не увидел ни одного из этих файлов .svn или .svn-base в файле output.csv, к которому я передаю выходные данные?

Я попытался использовать Excel для поиска в первом столбце файла output.csv, чтобы выбрать все строки, содержащие 'svn', но этот файл csv содержит более 30000 строк, и это может занять некоторое время, чтобы отфильтровать все, если я сделаю это таким образом ,

Есть ли что-то похожее на grep для окон, которые я могу использовать для этого? Я скачал grep GNUWin32, но когда я пытаюсь его использовать, я получаю сообщение об ошибке в отсутствующем файле библиотеки.

Я также попытался использовать ключ / AH в DIR, и по какой-то причине я по-прежнему получаю папки .svn в каждом подкаталоге :( Возможно, я не использую этот ключ, чтобы неправильно показывать скрытые файлы ..

2 ответа2

1

В командной строке cmd это должно сделать это:

dir /b /s c:\directory\ | Findstr /V /I .svn > output.csv

Если у вас Windows 7/8 или вы установили Powershell, я бы посоветовал изучить его. В Powershell вы бы сделали что-то вроде:

Get-ChildItem . -exclude *.svn -recurse | Select-Object Name | Export-CSV .\output.csv -NoTypeInformation
0

Альтернативное решение (за счет размера)

Перед dir svn export WC в export-dir и устраните таким образом .svn dir(s)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .