Итак, я собираюсь подсчитать файлы в каталоге, включая все подпапки, и получить результат как количество файлов, найденных в каталоге. Проблема в том, что я хочу исключить все папки с именем error
. Те файлы в этой папке, которые я не хочу подсчитывать.Batch подсчитывает все файлы, но исключает их в определенной папке
Просто ...
for /r "\\server\share\folderA" %%G in (*.*) do (
set /A count=count + 1
)
echo %count%
Под folderA есть много подпапок, что я рассчитываю, но и «ошибка» папки, которые я не хочу, чтобы сосчитать.
Так что я пытаюсь следующий ...
Создать временный файл с именем exclude.txt
и введите error
в этот файл
if not exist "c:\temp" mkdir "c:\temp" 2>nul
if not exist c:\temp\exclude mkdir c:\temp\exclude 2>nul
echo error> %excludefolder%\exclude.txt
Теперь я хочу, чтобы совместить это каким-то образом. В основном делайте что-то вроде этого ...
for /r "\\server\share\folderA" %%G in (*.*) EXCLUDE: c:\temp\exclude\exclude.txt do (
set /A count=count + 1
)
Но я знаю, что это не сработает, и я не уверен, как это работает. Кто-нибудь знает? Благодаря!
Спасибо за отличный ответ @dbenham. Кажется, это делает работу. Только для записи, могу ли я исключить больше папок с помощью этой настройки? Например, если бы я мог добавить '' \\ error \\ "" \\ другую папку \\ "' после '/ liv'? – MadsTheMan
@MadsTheMan - Почти так. Вы должны поместить все папки исключений в одну строку, помеченные пробелами: 'findstr/liv \\ \\ \\ \\ anotherFolder \\" '. Если имя папки содержит пробелы, вам понадобится несколько опций \ C: string: 'findstr/iv/c:" \\ error \\ "/ c:" \\ другая папка \\ "'. Прочтите встроенную справку, используя 'help findstr' или' findstr /? '. Кроме того, вам может быть интересно узнать о недокументированных функциях по адресу http://stackoverflow.com/q/8844868/1012053 – dbenham
Спасибо за ввод, просто отлично. И эта ссылка - золотая ценность. – MadsTheMan