2017-02-02 6 views
0

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

dir /a-d "C:\Users\Me\Desktop\testphotos" | find "*" 

pause 

В моей папке «testphotos», у меня есть 4 образца фото файлов, но пакетный скрипт возвращает 0 файлов.

+3

Что случилось с ' dir/ad "C: \ Users \ Me \ Desktop \ testphotos \ *. *'? –

+0

Я получаю следующее: Файл не найден 0 –

+0

Нет, если у вас есть 4 файла в папке, вы этого не делаете. –

ответ

1

альтернатива вашего сценария:

@echo off 
set count=0 
cd "C:\Users\Me\Desktop\testphotos" 
for %%a in (*.*) do set /a "count+=1" 
echo %count% 
pause 

рассчитывать только .png файлы, используйте:

@echo off 
set count=0 
cd "C:\Users\Me\Desktop\testphotos" 
for %%a in (*.png) do set /a "count+=1" 
echo %count% 
pause 
+0

Это на самом деле работает, большое спасибо. Хотя одно небольшое предостережение: кажется, что этот скрипт будет считать только файлы, в которых находится .bat, независимо от того, что существует 'cd C: \ Users \ Me \ Desktop \ testphotos "' в строке 4. –

+0

извините, см. Мое редактирование –

+0

Я беру это обратно, спасибо HackR_360, ошибка пользователя на моем конце, поскольку путь к файлу был фактически неправильным, поскольку я использовал псевдополе имя файла здесь, в stackoverflow и была опечатка, когда я приводил ее в свою машину. Огромное спасибо!!! –

2
dir/a-d /b "C:\Users\Me\Desktop\testphotos"|find /c /v "" 

Вы должны добавить /b иначе dir произведут верхние и нижние колонтитулы ,

/c Swich к find сообщает количество строк, что бы выход (/ с outputs the count instead)./v means "don't match и "" пустые строки, так что find подсчитывает dir строки, которые не соответствуют пустые строки.