Показать полную графическую версию : [решено] Что не так в bat файле монтирования образа диска
eus_deus
10-01-2013, 23:55
Здравствуйте!
Кто может подкорректировать код в bat файле? Он планируется использоваться в тотал коммандере для монтирования образа диска
@echo off
cls
if defined PROCESSOR_ARCHITEW6432 (goto LABEL_X64)
if %PROCESSOR_ARCHITECTURE%==IA64 (goto LABEL_X64)
if %PROCESSOR_ARCHITECTURE%==AMD64 (goto LABEL_X64)
if %PROCESSOR_ARCHITECTURE%==x86 (goto LABEL_X86)
:LABEL_X64
cd 64
start OSFMount.com -a -t file -f %P%N -m x:
goto LABEL_END
:LABEL_X86
cd 32
start OSFMount.com -a -t file -f %P%N -m x:
goto LABEL_END
:LABEL_END
exit
Идет проверка разрядности wndows и в зависимости от разрядности должен запускаться соответствующий драйвер и монтировать выбранный в панели образ. С такими параметрами (OSFMount.com -a -t file -f %P%N -m x: ) кнопка в тотале работает.Просто три компа в семье, хочется один универсальный тотал настроить. Что не так? Всем спасибо!
eus_deus
11-01-2013, 16:35
да,скорее всего он не заработает.не получится передать имя выбранного в панели файла
El Sanchez
11-01-2013, 21:17
eus_deus,
@Echo Off
SetLocal
If "%PROCESSOR_ARCHITECTURE:86=%" == "%PROCESSOR_ARCHITECTURE%" (CD 64) Else (CD 32)
OSFMount.com -a -t file -f "%~1%2" -m x:
В поле Параметры: кнопки напишите:
"%P" %N
eus_deus
12-01-2013, 17:26
El Sanchez, пробовал мудрить по другому. у меня теперь две версии в одной папке. osfmount32 и osfmount64
eus_deus
12-01-2013, 18:04
вот такая структура каталога сейчас
OSFMount32.com
OSFMount32.exe
OSFMount32.sys
OSFMount64.com
OSFMount64.exe
OSFMount64.sys
eus_deus
12-01-2013, 19:32
попробовал вернуть все как было. приведенный скрипт у меня не сработал
El Sanchez
12-01-2013, 22:59
у меня теперь две версии в одной папке. osfmount32 и osfmount64 »
eus_deus, допустим батник лежит в одной директории с файлами программы:
@Echo Off
SetLocal
If "%PROCESSOR_ARCHITECTURE:86=%" == "%PROCESSOR_ARCHITECTURE%" (Set Arch=64) Else (Set Arch=32)
Echo OSFMount%Arch%.com -a -t file -f "%~1%2" -m x:
Pause
Выделенное красным - для отладки. Запускаете, смотрите в консольном окне верен ли синтаксис команды, особое внимание на путь, указанный в параметре -f.
El Sanchez, коллега, Вы видимо описались(Set %Arch%=64) Else (Set %Arch%=32) »
Проценты лишние
eus_deus
12-01-2013, 23:25
gora, вы правы, на проценты ругается
El Sanchez, в целом код без ошибок, и пути к образам правильные. только скрипт определяет мою win7 x64 как 32-х битную систему, и загружает не тот драйвер
Поменял местами переменные, в окне консоли пишет все верно, но монтирования не происходит
скрипт определяет мою win7 x64 как 32-х битную систему »
Попробуйте так:Set Arch=32& If Defined PROCESSOR_ARCHITEW6432 (Set Arch=64) Else If "%PROCESSOR_ARCHITECTURE%"=="AMD64" Set Arch=64
eus_deus
12-01-2013, 23:55
Вот я тупой! В коде же написано echo, как же он монтировать будет? Мне же написали ясно - для отладки
Итак, вариант такой ( на win7 x64 работает, 32 проверю позже)
@Echo Off
Set Arch=32& If Defined PROCESSOR_ARCHITEW6432 ( Set Arch=64) Else If "%PROCESSOR_ARCHITECTURE%"=="AMD64" Set Arch=64
START OSFMount%Arch%.com -a -t file -f "%~1%2" -m x:
exit
и в параметры кнопки в панели тотал коммандера
"%P" %N
Считаю вопрос закрытым, по крайней мере, если что не так, понятно где копать.
Всех благодарю за грамотные советы и помощь
eus_deus
13-01-2013, 00:34
Попробовал 32 бита. Все прекрасно, только вот в путь файла вставляется много кавычек (2 пары).Заменил параметр кнопки на
%P%N
и все стало чудесно. Сейчас по образу и подобию монтирования напишу демонтирование
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.