dimasic
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ТруЪ вариант набора скриптов. Умеет монтировать указанную папку в подпапку с именем монтируемой папки или в подпапку с текущей датой и временем в формате ГГГГММДД-ЧЧММ. Также способен самостоятельно определять корневую папку облака в настройках клиента, но с портативными сборками (если они существуют и ими кто-то пользуется) такое не получится, для них путь задать вручную. Конфигурирование. Все параметры - имя диска, способ указания корневой папки и способ формирования имени подпапки задаются в config.cmd, эти места отмечены в комментариях звездочками. По умолчанию имя виртуального диска - z, подпапка именуется по дате и времени, путь к корневой папке облака берется из реестра. mount.cmd запускается с именем монтируемой папки в качестве параметра. Для unmount.cmd параметр больше не требуется: имя смонтированной папки хранится в рабочей папке комплекта скриптов в файле FolderName. Если этого файла нет, считается, что команда mount.cmd не отработала, и размонтирование не делается. Можно более четкие проверки добавить, но сейчас особого смысла в этом не вижу. После ловли багов и доработки можно и полный комплект с документацией собрать, если оно вообще востребовано окажется. Напоминаю: сохранять в кодировке cp866. mount.cmd Код: @echo off call "%~dp0\config.cmd" "%~1" if not exist "%~dp0\%letter%" echo Программа не сконфигурирована & pause & goto :EOF if "%~1"=="" echo Папка не указана & pause & goto :EOF if not exist "%~1" echo Указанная папка не существует & pause & goto :EOF echo %FolderName% >"%~dp0\FolderName" subst %letter%: "%~1" mklink /j "%CloudFolder%\%FolderName%" "%~dp0\%letter%" pause | unmount.cmd Код: @echo off call "%~dp0\config.cmd" if not exist "%~dp0\%letter%" echo Программа не сконфигурирована & pause & goto :EOF if not exist "%~dp0\FolderName" echo Папка не смонтирована должным образом & pause & goto :EOF subst %letter%: /d for /f "usebackq delims=" %%i in ("%~dp0\FolderName") do set FolderName=%%i echo Отключите в клиенте синхронизацию папки "%FolderName%" и завершите его работу. echo На его предупреждение об удалении файлов внимание можно не обращать. echo. echo Продолжайте только ПОСЛЕ отключения синхронизации в клиенте. echo. pause echo Удаление ссылки на папку rmdir "%CloudFolder%\%FolderName%" del "%~dp0\FolderName" pause | config.cmd Код: @echo off for /f "tokens=2,*" %%a in ('reg query HKCU\Software\Mail.Ru\Mail.Ru_Cloud /v folder') do set CloudFolder=%%b set ctime=%time: =0% set FolderName=%date:~6,4%%date:~3,2%%date:~0,2%-%ctime:~0,2%%ctime:~3,2% rem *** Имя монтируемого виртуального диска БЕЗ двоеточия set Letter=z rem *** Следующую строчку раскомментировать и отредактировать, чтобы задать корень облака вручную rem set CloudFolder=c:\users\Юзер\Cloud@Mail.Ru rem *** Следующую строчку раскомментировать, чтобы именовать подпапку по имени монтируемой папки rem set FolderName=%~n1 if not exist "%~dp0\%letter%" ( echo Пробуем создать ссылку... mklink /d "%~dp0\%letter%" %letter%: ) if not exist "%~dp0\%letter%" ( echo. echo Программа не сконфигурирована. echo 1. Проверьте настройки config.cmd echo 2. Запустите config.cmd из-под Администратора echo. pause ) |
| Всего записей: 805 | Зарегистр. 09-11-2003 | Отправлено: 20:23 12-04-2014 | Исправлено: dimasic, 13:02 13-04-2014 |
|