|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Перемещение нескольких папок из папки E2E2~1 |
|
|
CMD/BAT - Перемещение нескольких папок из папки E2E2~1
|
Новый участник Сообщения: 21 |
Профиль | Отправить PM | Цитировать Вирус, на флешке, создает специальную папку в виде .. (две точки) и помещает в эту папку все папки, которые находяться в корне флешки и затем в корне, создает exe-файлы в виде "названия_перемещенной_папки.exe". Exe-файлы удаляет любой антивирус, а оригинальные папки не восстаналивает.
Попасть во внутрь папки .. через проводник нет возможности. Но можно решить проблему введя в командной строке: cd \E2E2~1 и затем переместить все папки на уровень выше. Последнее время очень много народу обращается с проблемой пропажи папок и потому хотелось бы как то автоматизировать эту работу, что бы, каждый раз не проделывать всю работу в ручную, то есть создать свой батник при запуске которого восстаналвивались бы все папки а папка "E2E2~1" удалялась. |
|
Отправлено: 17:52, 11-06-2010 |
Старожил Сообщения: 426
|
Профиль | Отправить 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 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать Протестировал Ваш скрип.
Файлы и каталоги успешно переноситься из папки E2E2~1 на уровень выше. Сама папка E2E2~1 по окончанию не удаляется, в связи с этим уменьшается размер свободного места на флешке, так как папки дублируются. p.s. тестировала на WinXP |
Отправлено: 17:18, 16-06-2010 | #3 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать Цитата ameds:
|
|
------- Отправлено: 13:49, 17-06-2010 | #4 |
Ветеран Сообщения: 1271
|
Профиль | Отправить PM | Цитировать ameds, не пора ли начать искать вирус? P.S. http://wiki.drweb.com/index.php/Каталог_E2E2~1 |
|
Отправлено: 20:23, 18-06-2010 | #5 |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать El Sanchez вирус найден и удален, но каталог и файлы в нем остались.
NiOl появляется сообщение "Не все файлы из [...] удалось перенести (... шт)". |
Отправлено: 18:35, 19-06-2010 | #6 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать ameds, возможно к ним не было доступа. Попробуйте сбросить аттрибуты RO/Hiden/System и еще раз запустить скрипт.
А так, если не секрет - там всего несколько файлов не переехало назад или все? Если все, то боюсь мой скрипт где-то глючит - я тогда попрошу Вас скинуть архив с теми файлами, что не представляют секрета - посмотреть на проблему по-подробнее. |
------- Отправлено: 22:42, 19-06-2010 | #7 |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать NiOl, скидывать файлы не имеет смысла, так как файлы я создавал сам для теста, обыкновенные, пустые txt-шники. Тоже самое и с папками + в них несколько тоже пустых файлов. При выполнении скрипта, txt из корня папки E2E2~1, перемещаются, то есть в папке E2E2~1 их не остается, а вот папки из этой папки (простите за тавтологию ) только копируются.
По совету друга, смог удалить папку следующим способом: RD \\.\G:\E2E2~1 /s Он рекомендовал обратить внимание на \\.\ сказал, что с помощью этого можно удалять системные папки (или что то в этом духе). В интернете не смог ничего найти по этому поводу, google отказывается искать. Можно ли это как то учесть в скрипте?? p.s. удалил у себя последний экземпляр папки E2E2~1, протестировать смогу только когда кто нить опять принесет фешку с этой папкой. |
Отправлено: 13:56, 20-06-2010 | #8 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать ameds,
1. про запись "\\.\" слышу впервые, команды едят ее нормально, не ругаются 2. разницы по исполнению rd /s /q E2E2~1 и rd /s /q \\.\%WD:~0,2%\E2E2~1 не обнаружил - обе команды исправно удалили каталог с атрибутами SHR 3. попробуйте после строки echo Переносим файлы... вписать строку attrib *.* /s /d -s -h -r И ГЛАВНОЕ: Если Вы получили всплывающее окошко "Не все файлы из [disk:] удалось перенести (xxx шт)" - каталог уничтожить легко, но этого ни в коем случае не делается, т.к. файлы в нем не перенесены!!! т.к. они не копируются, а переносятся. Именно поэтому я и спросил - неперенеслись ВСЕ файлы или только ЧАСТЬ? |
------- Отправлено: 16:17, 21-06-2010 | #9 |
Ветеран Сообщения: 1271
|
Профиль | Отправить PM | Цитировать Цитата ameds:
Цитата NiOl:
Префикс \\.\, как и \\?\, позволяет производить операции с файлами, в названии которых содержатся зарезервированные имена, такие как LPT1, COM1, PRN, на NTFS-разделах, и через Проводник их не создашь и не убьешь. Поэтому либо через CMD с дописыванием префикса, либо через юникодный Far. |
||
Отправлено: 16:46, 22-06-2010 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
7 / 2008 R2 - Перемещение папки Users в Windows 7 | bab00n | Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista | 28 | 17-03-2015 12:11 | |
CMD/BAT - [решено] Перемещение устаревших файлов из папки в резервную папку | zavoruev | Скриптовые языки администрирования Windows | 22 | 28-05-2010 14:04 | |
Разное - [решено] Перемещение папки Users | nikkor7 | Microsoft Windows Vista | 2 | 13-04-2009 11:58 | |
[решено] Перемещение папки Users и изменение букв дискам средствами WAIK | alcatraz | Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista | 10 | 28-02-2009 03:04 |
|