Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Батник, выполняющийся только со сменных носителей (http://forum.oszone.net/showthread.php?t=234993)

Habetdin 19-05-2012 16:07 1918773

Батник, выполняющийся только со сменных носителей
 
Нужно сделать, чтобы определенные команды в батнике выполнялись только если он запущен из корня сменного носителя (флешки)
Пока что есть только проверка на нахождение в корне диска:
PHP код:

@echo off
if not %~dp0==%cd% (
echo 
nope
) else (
rem в корне
echo root
)
pause 

Как проверить, является ли диск сменным? :)

Foreigner 19-05-2012 17:28 1918807

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 1918885

Цитата:

Цитата Habetdin
…только если он запущен из корня сменного носителя (флешки) »

Проверять надо то, что пакетный файл именно запущен в нём (т.е. — текущим каталогом является корневой каталог сменного устройства) или же что пакетный файл находится в корневом каталоге сменного устройства?

Habetdin 19-05-2012 21:44 1918966

Iska, первое - проверять текущий каталог

PHP код:

@echo off
setlocal
set 
"wmic=wmic logicaldisk where name="%~d0" get drivetype /value"
for /%%i in (' "%wmic%" ') do 1>nul set "%%i"

if not %~dp0==%cd% (
echo 
Батник не в корне
) else (

    if %
drivetypeequ 2 (
    echo 
Флешка
    rem тут нужные комманды
    
) else (
    echo 
Не флешка
    
)

)

pause
exit 

Вот что-то такое получилось...


Время: 18:51.

Время: 18:51.
© OSzone.net 2001-