Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] вывод списка папок где не равное количество фалов (http://forum.oszone.net/showthread.php?t=317387)

shmel_sv@vk 01-08-2016 15:35 2655944

вывод списка папок где не равное количество фалов
 
хочу сделать батник, который будет проверять папки на наличие файлов с расширением 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 2655948

Цитата:

Цитата shmel_sv@vk
вывод списка папок где не равное количество фалов »

подробнее, не равное чему
в папке кол-во txt не равно кол-ву rar
или в одной папке 2 txt в другой 3 rar
или в одной 2 txt и 2 rar а в другой 3 txt 2 rar
еще есть варианты...

shmel_sv@vk 01-08-2016 18:35 2655975

список файлов в одной и той же папке кол-во txt не равно кол-ву rar

shmel_sv@vk 02-08-2016 01:04 2656029

фух. разобралс\ вроди бы

Цитата:

@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 2656039

Вот ваш, но рабочий вариант:
Код:

@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

.


Время: 22:01.

Время: 22:01.
© OSzone.net 2001-