PDA

Показать полную графическую версию : [решено] Батник, выполняющийся только со сменных носителей


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)

Iska
19-05-2012, 19:28
…только если он запущен из корня сменного носителя (флешки) »
Проверять надо то, что пакетный файл именно запущен в нём (т.е. — текущим каталогом является корневой каталог сменного устройства) или же что пакетный файл находится в корневом каталоге сменного устройства?

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