Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


Как понять steam\SteamApps\common\"dota 2 beta" ???

Я не искал ошибку в Вашем коде. У меня получилось нечто такое (в меру моего понимания возможного имени папки которую обрабатываем):
Цитата:
кладу батник рядом с папкой
которую надо чистить и запускаю батник
Код: Выделить весь код
@Echo Off 

SetLocal EnableExtensions EnableDelayedExpansion

set "sTargetFolder=Где чистим\Подпапка"
set sExcludeFilesOrFolders="_CommonRedist" "EmptySteamDepot" "game" "Нужный файл 1" "Нужный файл 2.txt"


FOR /F "usebackq delims=" %%i IN (`dir "%sTargetFolder%\" /b /A:D 2^>nul`) DO (
	Set /A Log=0
	FOR %%j IN (%sExcludeFilesOrFolders%) DO If "%%i"==%%j Set /A Log=1
	If !Log!==0 Rd /s /q "%sTargetFolder%\%%i"
)

FOR /F "usebackq delims=" %%i IN (`dir "%sTargetFolder%\" /b /A:-D 2^>nul`) DO (
	Set /A Log=0
	FOR %%j IN (%sExcludeFilesOrFolders%) DO If "%%i"==%%j Set /A Log=1
	If !Log!==0 Del "%sTargetFolder%\%%i"
)
Батник написан в 866 кодировке (Dos). Идея та же что и у Вас

Чуть короче, но , скорее всего, медленнее в работе
Код: Выделить весь код
@Echo Off

SetLocal EnableExtensions EnableDelayedExpansion

set "sTargetFolder=Где чистим\Подпапка"
set sExcludeFilesOrFolders="_CommonRedist" "EmptySteamDepot" "game" "Нужный файл 1" "Нужный файл 2.txt"


FOR /F "usebackq delims=" %%i IN (`dir "%sTargetFolder%\" /b 2^>nul`) DO (
	Set /A Log=0
	FOR %%j IN (%sExcludeFilesOrFolders%) DO If "%%i"==%%j Set /A Log=1
	If !Log!==0 (
		Rd /s /q "%sTargetFolder%\%%i" 2>nul || Del /q "%sTargetFolder%\%%i" 2>nul
	)
)

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 02-11-2015 в 16:52.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:59, 02-11-2015 | #2