Показать полную графическую версию : [решено] Батник, выполняющийся только со сменных носителей
Habetdin
19-05-2012, 16:07
Нужно сделать, чтобы определенные команды в батнике выполнялись только если он запущен из корня сменного носителя (флешки)
Пока что есть только проверка на нахождение в корне диска:
@echo off
if not %~dp0==%cd% (
echo nope
) else (
rem в корне
echo root
)
pause
Как проверить, является ли диск сменным? :)
Foreigner
19-05-2012, 17:28
Habetdin,
@echo off
setlocal
set "wmic=wmic logicaldisk where name="%~d0" get drivetype /value"
for /f %%i in (' "%wmic%" ') do 1>nul set "%%i"
if %drivetype% equ 2 (echo Removable) else (echo Fixed)
…только если он запущен из корня сменного носителя (флешки) »
Проверять надо то, что пакетный файл именно запущен в нём (т.е. — текущим каталогом является корневой каталог сменного устройства) или же что пакетный файл находится в корневом каталоге сменного устройства?
Habetdin
19-05-2012, 21:44
Iska, первое - проверять текущий каталог
@echo off
setlocal
set "wmic=wmic logicaldisk where name="%~d0" get drivetype /value"
for /f %%i in (' "%wmic%" ') do 1>nul set "%%i"
if not %~dp0==%cd% (
echo Батник не в корне
) else (
if %drivetype% equ 2 (
echo Флешка
rem тут нужные комманды
) else (
echo Не флешка
)
)
pause
exit
Вот что-то такое получилось...
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC