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

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

Старожил


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

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


Код: Выделить весь код
@Echo off
SetLocal EnableExtensions
set Disks=D E F G H I J K L M N O P Q R S T U V W X Y Z
set Home=%CD%

echo Ищем диски с каталогом ".." в корне...
for %%D in (%Disks%) do if exist %%D:\E2E2~1 call :Found %%D:\E2E2~1
if not defined WD (
msg * /time:5 "Каталог [..] не обнаружен"
exit 2
)
cd %Home%
%Home:~0,2%
exit


:Found
set WD=%1
cd %WD%
%WD:~0,2%

echo.
echo Удаляем все *.EXE из корня [%WD:~0,2%]
del /f ..\*.exe 2>nul

echo Восстанавливаем структуру каталогов [%WD:~0,2%]
xcopy *.* \*.* /E /C /I /H /T /Y

echo Переносим файлы...
move *.* \ 2>nul
for /f "tokens=* delims=" %%P in ('dir /ad /b /s *.*') do call :Proceed "%%P"
rem Все ли файлы перенесены?
for /f "tokens=* delims=" %%L in ('dir /a-d /b /s *.* 2^>nul ^| find /c ":"') do set Lines=%%L
if %Lines%==0 (cd .. & rd /s /q E2E2~1 & echo Удаляем каталог) else msg * "Не все файлы из [%WD%] удалось перенести (%Lines% шт)"
exit /b


:Proceed
set Pth=%~1\
set Pth=%Pth:~10,-1%
move "%Pth%\*.*" "\%Pth%" 2>nul
exit /b
ЗЫ: НЕ ИМЕЯ СВОБОДНОГО НОСИТЕЛЯ (И ТЕМ БОЛЕЕ ЗАРАЖЕННОГО ЭТИМ СОРТОМ ВИРУСА) НЕ СМОГ ПОЛНОЦЕННО ПРОТЕСТИРОВАТЬ СКРИПТ! ИСПОЛЬЗУЙТЕ НА СВОЙ СТРАХ И РИСК!!!

ЗЗЫ: Бежит по всем дискам, начиная с [D:] и ищет там указанный каталог. Предполагаю, что если флешка оформатирована под NTFS, то указанного каталога там не будет...

-------
Как сказало Дерево Дровосеку: "я - пень".


Отправлено: 20:08, 11-06-2010 | #2