Войти

Показать полную графическую версию : [решено] вывод списка папок где не равное количество фалов


shmel_sv@vk
01-08-2016, 15:35
хочу сделать батник, который будет проверять папки на наличие файлов с расширением 1 и расширением 2 (вывод списка папок где не равное количество фалов)
но чтото делаю не то
где я допустил ошибку?


@echo on
echo. PROCESSING %CD%
echo. CHECKING rar

set ext1=rar
set ext2=txt

for /f "tokens=*" %%D in (' dir /b /ad "%CD%" ') do if exist "%%D\*.%ext1%" (
For /F %%A In ('2^>Nul Dir /B/A-D %%D\*.%ext2%^|Find /C /V ""') do set aaa=%%a
For /F %%B In ('2^>Nul Dir /B/A-D %%D\*.%ext1%^|Find /C /V ""') do set bbb=%%b
if %aaa% NEQ %bbb% Echo %%D>>list.txt
)

exit

alpap
01-08-2016, 15:50
вывод списка папок где не равное количество фалов »
подробнее, не равное чему
в папке кол-во txt не равно кол-ву rar
или в одной папке 2 txt в другой 3 rar
или в одной 2 txt и 2 rar а в другой 3 txt 2 rar
еще есть варианты...

shmel_sv@vk
01-08-2016, 18:35
список файлов в одной и той же папке кол-во txt не равно кол-ву rar

shmel_sv@vk
02-08-2016, 01:04
фух. разобралс\ вроди бы

@echo off
echo. PROCESSING %CD%
echo. CHECKING cue

set ext1=rar
set ext2=txt

for /f "tokens=*" %%D in (' dir /b /ad "%CD%" ') do if exist "%%D\*.%ext1%" (

For /F %%A In ('2^>Nul Dir /B/A-D %%D\*.%ext1%^|Find /C /V ""') do (
For /F %%B In ('2^>Nul Dir /B/A-D %%D\*.%ext2%^|Find /C /V ""') do (

if %%A NEQ %%B Echo %%D\>>temp.txt
)))
exit

alpap
02-08-2016, 02:06
Вот ваш, но рабочий вариант:

@echo off
set "d=papka"
for /f "delims=" %%a in ('dir/ad/b "%d%"') do (
for /f "delims=" %%b in ('dir/a-d/b "%d%\%%a"^|find/c ".txt"') do (
for /f "delims=" %%c in ('dir/a-d/b "%d%\%%a"^|find/c ".rar"') do set/a x=%%b/%%c& cmd/v/c if not !x!==1 echo %%a
))
exit


это еще один вариант:

@echo off
set "d=papka"
set "a=.txt"& set "b=.rar"
for /f "delims=" %%A in ('dir/ad/b "%d%"') do (
pushd "%d%\%%A"
setlocal enabledelayedexpansion
for %%a in (*) do set/a %%~xa+=1
set .& set/a x=%a%/%b%
>>"%Userprofile%\Desktop\list.txt" (if not !x!==1 echo %d%\%%A)
endlocal
popd
)
exit
.




© OSzone.net 2001-2012