Возможно ли создать .bat файл для быстрого извлечения флешки?

Слишком много телодвижений приходится проделывать чтобы безопасно извлечь флешку. Как истинный ленивый айтишник я хочу автоматизировать этот процесс. Я хочу написать простой батник, который будет лежать в корне моей флешки, и который будет в один клик её извлекать. Возможно ли это средствами cmd? Курение мануала не помогло.
  • Вопрос задан
  • 12808 просмотров
Решения вопроса 1
@amirul
Если обязательно bat файл, то как то так
eject.cmd:

@if (0 == 1) @end /*
@cscript //E:JScript //Nologo %~f0
@exit /B %ERRORLEVEL%
*/
var shell = new ActiveXObject("Shell.Application");
shell.NameSpace(17).ParseName("E:").InvokeVerb("Eject");
WSH.Sleep(2000);


К сожалению, для версии, не зависящей от языка, нужно использовать CM API, но для личного пользования, как по мне, вполне сойдет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 6
mambet
@mambet
Можно сделать, чтобы появлялось стандартное окошечко как-то так:
RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll
А можно попробовать поиграться с devcon
Другой вопрос, что надо будет попроверять, сможет ли оно выдернуть устройство, когда с него запущен batch-файл.
Ответ написан
mr_locke
@mr_locke
можно поступить проще — включить для флешки режим optimized for fast removal. на семерке для съемных дисков он включен вроде бы автоматом, по крайней мере для флешек и usb-дисков это так. Тогда можно просто выдергивать ничего не освобождая.

кстати, встречный вопрос. на семерке от момента нажатия на иконке Освободить устройство проходит довольно много времени прежде чем появится менюшка с выбором устройства. на xp такого не наблюдалось, раздражает страшно. кто-нибудь знает как с этим бороться?
Ответ написан
pietrovich
@pietrovich
Понимаю что немного не в кассу, но до перехода на семерку мне очень нравилась утилита USB Safely Remove, настолько нравилась, что я их даже несколько штук купил(а это не хухры-мухры, я абы что не покупаю). В общем дает она много всякого приятного, в том числе и извлечение с помощью командной строки.
Ответ написан
bliznezz
@bliznezz
Батник можно положить и на флешку. Но пару ньюансов.
1. Перед отмонтированием — сбросить буфера. Можно было бы порекомендовать утилитку sync от sysinternals, но она на новом компьютере просит согласиться с лицензией. (распаковываем из архива, запускаем, дожидаемся отрабатывания)
2. создаем во временной папке %TEMP% скрипт, например %TEMP%\unmount.bat, который ждет секунду-две (хоть пингами), и потом отмонтирует или предлагает отмонтировать.
батник, который на флешке запускает этот временный через start:
start %TEMP%\unmount.bat

При этом батник на флешке завершает работу, чего естественно ждет временный скрипт и потом предлагает отмонтировать устройство.
Ответ написан
gjf
@gjf
Если не критично, будет скрипт в bat или утиль в командной строке, то в качестве утиля можно попробовать EjectMedia или RemoveDrive.
Ответ написан
AstaRoth
@AstaRoth
$Ret = DllCall('SRD.dll', 'str', 'SafeRemoveDrive', 'str', 'G')
If Int($Ret[0]) = 0 Then
MsgBox(0, '', 'Error')
Else
MsgBox(0, '', 'Successful')
EndIf


yashied.narod2.ru/ProjectFiles/Miscellaneous/SRD.dll
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
21 сент. 2019, в 21:51
80000 руб./за проект
21 сент. 2019, в 21:07
700 руб./в час