Компьютерный форум 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=355681)

Super_Kolobok 13-09-2024 09:26 3030820

Подсчет количества удаленных файлов
 
Удаляю по маскам разную фигню типа так del /f /s /a "*.x1"......del /f /s /a "*.x2"........
Как подсчитать в cmd и вывести в конце сколько всего было удалено файлов ?
Спасибо

DJ Mogarych 13-09-2024 13:57 3030821

Например, посчитайте их сначала, а потом удаляйте.

Вот вариант для Powershell (там легче такие штуки делать)
Код:

$folder = 'C:\temp\folder'
$ext = '*.json','*.js'

dir $folder -Include $ext -File -Recurse -OutVariable f |del -WhatIf
$f |group Extension |% {"Удалено $($_.count) файлов $($_.name)"}

Чтобы реально удаляло, уберите -WhatIf

Ещё вариант - сохранение в CSV
Код:

$f |group Extension |select name,count |ConvertTo-Csv -Delimiter "`t" |tee C:\temp\deleted_files_log.csv

"Name"  "Count"
".js"  "48"
".json" "4"


megaloman 13-09-2024 21:53 3030830

Код:

@Echo Off &Cls &>nul CHCP 1251
        Set "BoxIn=D:\Delt"
        Pushd "%BoxIn%" || (Echo Folder "%BoxIn%\" not found &Pause &Exit /B 2)
       
        >nul CHCP 437
                Set "Mask=*.bat *.vbs *.js"

                Set /A n1=0, n2=0
                For /F "usebackq tokens=1* delims= " %%f In (`2^>nul Dir /S ^|Find /I "File(s)"`) Do 2>nul Set /A n1=%%f
                >nul 2>&1 Echo Del /s /f /a  %Mask%
                For /F "usebackq tokens=1* delims= " %%f In (`2^>nul Dir /S ^|Find /I "File(s)"`) Do 2>nul Set /A n2=%%f
        Popd

        >nul CHCP 1251
                Set /A nDel=%n1%-%n2%
                Echo %n1%-%n2%=%nDel% File(s) deleted
Pause
Exit /B

Для боевого использования уберите Echo перед Del


Время: 03:44.

Время: 03:44.
© OSzone.net 2001-