Войти

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


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

DJ Mogarych
13-09-2024, 13:57
Например, посчитайте их сначала, а потом удаляйте.

Вот вариант для 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
@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




© OSzone.net 2001-2012