Цитата
megaloman:
@Echo Off
Set "Mask=*.??-??.*cab"
Set "Exclude=.ru-RU. .en-GB. .en-US. .de-DE."
Set "BoxIn=%~dp0"
rem Set "BoxIn=%userprofile%\Desktop\ElsaWin"
Set "Log=%userprofile%\Desktop\%~nx0.log"
If "%BoxIn:~-1%"=="\" Set "BoxIn=%BoxIn:~0,-1%"
Call :PushdLog "%Log%"
>~Exclude.tmp (For %%e IN (%Exclude%) DO Echo %%e)
>"%Log%" (FOR /F "usebackq delims=" %%f IN (`Xcopy "%BoxIn%\%Mask%" "%Tmp%" /Exclude:~Exclude.tmp /S /L`) DO (
If Exist "%%f" Echo Del "%%f" &Del /F "%%f" 2>&1
))
Del ~Exclude.tmp
Popd
GoTo :Eof
:PushdLog
Pushd "%~dp1"
GoTo :Eof
CMD/BAT - Нужен bat-ник для поиска и удаления файлов и папок по части названия файла
Этот код не работает. Он удаляет и то, что надо оставить то же.
Цитата
megaloman:
@Echo Off
Set Mask="*.??-??.*cab" "*.??-??#*cab"
Set "Exclude=.ru-RU. .en-GB. .en-US. .de-DE. .ru-RU# .en-GB# .en-US# .de-DE#"
rem Set "BoxIn=%~dp0"
Set "BoxIn=%userprofile%\Desktop\ElsaWin"
Set "Log=%userprofile%\Desktop\%~nx0.log"
If "%BoxIn:~-1%"=="\" Set "BoxIn=%BoxIn:~0,-1%"
Call :PushdLog "%Log%"
>~Exclude.tmp (For %%e IN (%Exclude%) DO Echo %%e)
Call :InMask %Mask%
Del ~Exclude.tmp
Popd
GoTo :Eof
:InMask
>"%Log%" (For /F "usebackq delims=" %%f IN (`Xcopy "%BoxIn%\%~1" "%Tmp%" /Exclude:~Exclude.tmp /S /L 2^>nul`) DO (
If Exist "%%f" Echo Del "%%f" &Del /F "%%f" 2>&1
))
Shift
If Not "%~1"=="" GoTo :InMask
GoTo :Eof
:PushdLog
Pushd "%~dp1"
GoTo :Eof
CMD/BAT - Нужен bat-ник для поиска и удаления файлов и папок по части названия файла
Цитата
megaloman:
Просмотрите, какие бывают файлы, выпишите все маски, пропишите в батнике
CMD/BAT - Нужен bat-ник для поиска и удаления файлов и папок по части названия файла
Это я вернулся к тому, что было у меня:
Код:
Код: Выделить всё
:: Где ищем
cd /d "%~dp0"
:: Что ищем
set mask="*cs-CZ* *da-DK* *el-GR* *es-ES* *fi-FI* *fr-CA* *fr-FR* *hr-HR* *hu-HU* *it-IT* *ja-JP* *ko-KR* *nl-NL* *pl-PL* *pt-PT* *ro-RO* *sk-SK* *sl-SI* *sv-SE* *th-TH* *tr-TR* *zh-CN* *lt-LT* *lv-LV* *mk-MK* *nb-NO* *pt-BR* *sr-YU* *uk-UA* *zh-CHS* *bg-BG* *et-EE* *zh-TW* *zh-TW* *id-ID* *ms-MY* *nl-BE* *sr-SP* *zh-SG*"
:: Что оставляем
:: en-GB, en-US, de-DE, ru-RU
2>NUL (for /f "delims=" %%A in ('"dir /b /a:-d "%mask%""') do (
set /a n+=1
))
if "%n%" LSS "1" echo. & echo. & echo. - Заданных файлов не найдено .. & echo. & echo. - Нажмите любую клавишу для выхода .. & Pause >NUL & goto :EOF
del /f /a /q /s "%mask%" 2>NUL 1>&2 > %userprofile%\Desktop\loglist.txt
for %%J in (".") do echo. & echo. - Удалено: %n% файлов & echo. & echo. - Из папки: %%~nJ
echo.
Pause
Pause >NUL
EndLocal
Exit /B
но это плохо!
Языки меняются в папках и добавляются порой новые.
Ладно, спасибо Вам
megaloman БОЛЬШОЕ за помощь.
Что нибудь придумаю.