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

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

eus_deus 10-01-2013 23:55 2063843

Что не так в bat файле монтирования образа диска
 
Здравствуйте!
Кто может подкорректировать код в 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 2064365

да,скорее всего он не заработает.не получится передать имя выбранного в панели файла

El Sanchez 11-01-2013 21:17 2064581

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 2065113

El Sanchez, пробовал мудрить по другому. у меня теперь две версии в одной папке. osfmount32 и osfmount64

eus_deus 12-01-2013 18:04 2065142

вот такая структура каталога сейчас

OSFMount32.com
OSFMount32.exe
OSFMount32.sys
OSFMount64.com
OSFMount64.exe
OSFMount64.sys

eus_deus 12-01-2013 19:32 2065204

попробовал вернуть все как было. приведенный скрипт у меня не сработал

El Sanchez 12-01-2013 22:59 2065365

Цитата:

Цитата eus_deus
у меня теперь две версии в одной папке. 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.

gora 12-01-2013 23:09 2065378

El Sanchez, коллега, Вы видимо описались
Цитата:

Цитата El Sanchez
(Set %Arch%=64) Else (Set %Arch%=32) »

Проценты лишние

eus_deus 12-01-2013 23:25 2065393

gora, вы правы, на проценты ругается

El Sanchez, в целом код без ошибок, и пути к образам правильные. только скрипт определяет мою win7 x64 как 32-х битную систему, и загружает не тот драйвер
Поменял местами переменные, в окне консоли пишет все верно, но монтирования не происходит

gora 12-01-2013 23:33 2065396

Цитата:

Цитата eus_deus
скрипт определяет мою 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 2065406

Вот я тупой! В коде же написано 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 2065449

Попробовал 32 бита. Все прекрасно, только вот в путь файла вставляется много кавычек (2 пары).Заменил параметр кнопки на
Код:

%P%N
и все стало чудесно. Сейчас по образу и подобию монтирования напишу демонтирование


Время: 07:52.

Время: 07:52.
© OSzone.net 2001-