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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 2000/XP/2003 (http://forum.oszone.net/forumdisplay.php?f=32)
-   -   (solved) текущую папку в переменную ? (http://forum.oszone.net/showthread.php?t=54021)

mitiya 19-09-2005 17:49 356634

(solved) текущую папку в переменную ?
 
подскажите плизз

как в (*.bat *.cmd) сохранить текущую папку в переменную (чтоб потом ее подставить в путь)

суть вот в чем

я запускаю бат из некой (непостоянной) папки и мне надо сделать следущее :

start C:\Program Files\D-Tools\daemon.exe -mount 0,"%текущая папка%\aaa.iso"

Vadikan 19-09-2005 21:15 356682

Код:

start C:\Program Files\D-Tools\daemon.exe -mount 0,"%CD%\aaa.iso"
%CD% как раз и означает "текущая папка" (current dir)

mitiya 20-09-2005 14:03 356883

я пытался сделать следущее :
set mydir=%cd%
но чтобы запустить образ таким образом надо написать след. строку:
daemon.exe -mount 0,"%mydir%\ABBYY.Lingvo.10.Multilingual.iso"

а daemon.exe лежит в C:\Program Files\D-Tools\ (не самый лучший путь)

поскольку "неочень умные люди из M$" назвали одну из главнейших папок с пробелом то этот путь надо брать в " ".
тоесть примерно так :

start "C:\Program Files\D-Tools\daemon.exe -mount 0,"%mydir%\ABBYY.Lingvo.10.Multilingual.iso""

но такая строка не срабатывает (вероятно из-за нескольких кавычек)

такшто я поступил след. образом :

cd /d "%SystemDrive%\Program Files\D-Tools\"

start /wait daemon.exe -mount 0,"%mydir%\ABBYY.Lingvo.10.Multilingual.iso"

но mydir приняла значение %SystemDrive%\Program Files\D-Tools\ ,а не изначальной папки

так что вот.

не знаю что и придумать.

судя по всему переменная mydir становиться "переменной" переменной (как %cd%) ,надо бы както заставить mydir не меняться.


fox_sly 20-09-2005 16:53 356921

mitiya


Если тебя конкретно интересует автоматическая установка Lingvo 10 то глянь тут

http://forum.oszone.net/showthread.php?t=46951&page=all

mitiya 20-09-2005 19:14 356963

на данный момент меня именно автоматическая установка лингво уже не очень интересует (выше описанную проблему я обошел. Т.к я телал CD с лингво то я папка из каторой я запускаю *.bat это cdrom , но если я к примеру скину содержимое этого CD камуть на винт ,то возникнет проблема)
Но меня попрежнему интересует как сохранить текущую папку в переменную , я чувствую что это даже очень может пригодиться

Vadikan 20-09-2005 21:11 356993

Цитата:

start "C:\Program Files\D-Tools\daemon.exe -mount 0,"%mydir%\ABBYY.Lingvo.10.Multilingual.iso""

но такая строка не срабатывает (вероятно из-за нескольких кавычек)

Надо ставить обратные слэши.
Код:

start "C:\Program Files\D-Tools\daemon.exe -mount 0,\"%mydir%\ABBYY.Lingvo.10.Multilingual.iso\""

VseDoFeNi 20-09-2005 21:18 356996

mitiya
Полный батник покажи...

TbMA 20-09-2005 21:18 356997

Можете попробовать использовать путь к самому бат-файлу, который как известно хранится в %0
Код:

echo %~d0%~p0

VseDoFeNi 20-09-2005 23:00 357014

TbMA
%CD% - раскрывает в текущий каталог. Иногда удобнее с ним работать.

TbMA 20-09-2005 23:08 357015

VseDoFeNi
А там наверху написано как он с ней мучалси.

VseDoFeNi 20-09-2005 23:16 357017

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

mitiya 22-09-2005 14:11 357535

вот так выглядит батник сейчас : (Mit_Inst.exe - это скрипт который на кнопки жмет при инсталяции )
вместо "текущей папки " я использовал %CDROM% ,но как я уже говарил подомный метод исключае установку с HDD без корекции батника



FOR %%d IN (c d e f g h i j k l m n o p q r s t u v w x y z) DO IF EXIST %%d:\Ling.10 SET CDROM=%%d:

cd Crack\Virtual_Floppy_Driver\


start vfdwin.exe /mount ling10me_flp.ima /L:B /Q

cd /d "%SystemDrive%\Program Files\D-Tools\"


start /wait daemon.exe -mount 0,"%cdrom%\ABBYY.Lingvo.10.Multilingual.iso"

FOR %%d IN (c d e f g h i j k l m n o p q r s t u v w x y z) DO IF EXIST %%d:\"ABBYY Lingvo 10 Multilingual Dictionary.msi" SET CDROM2=%%d:

start %cdrom2%setup.exe

start %cdrom%\Mit_Inst.exe



exit

VseDoFeNi 22-09-2005 17:04 357625

mitiya
Так будет пахать. Сохрани, как mount.cmd.

Код:

Set MountDir=%CD%

CD /d %ProgramFiles%\D-Tools

start /wait daemon.exe -mount 0,"%MountDir%\ABBYY.Lingvo.10.Multilingual.iso"


mitiya 22-09-2005 18:04 357648

Цитата:

Set MountDir=%CD%

CD /d %ProgramFiles%\D-Tools

start /wait daemon.exe -mount 0,"%MountDir%\ABBYY.Lingvo.10.Multilingual.iso"
я именно так и пробовал , но когда ты переходиш в %ProgramFiles%\D-Tools то %CD% меняется и вместе с ней почемуто меняется и %MountDir% и в результате получается :



start /wait daemon.exe -mount 0,"%ProgramFiles%\D-Tools\ABBYY.Lingvo.10.Multilingual.iso"

VseDoFeNi 22-09-2005 18:37 357655

mitiya
Ну не может такого быть, смотри любой мой батник, благо их немало :)
NRTool хотя бы посмотри. http://unacreator.elitecom.ru/click/fclick.php?ad=17
%CD% и должна меняться, она указывает текущий каталог, но ты переменную раньше определил.

mitiya 22-09-2005 20:22 357688

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

:closed-to

IlyaNSK 13-06-2012 10:23 1933318

Я, чтобы не пыхтеть с пробелами в именах, особенно известных папок, применяю их укороченные варианты

например, надо "C:\Documents and Settings\All Users\Start Menu\Programs\Tame\Explore log files.lnk" скопировать в "C:\Program Files\Free Download Manager"
пишем
Код:

copy C:\Docume~1\AllUse~1\StartM~1\Programs\Tame\Explor~1.lnk  c:\progra~1\FreeDo~1
и никаких кавычек
можно применить и встроенное в windows преобразование :
"..
%~sI - полученный путь содержит только короткие имена
..
" из help по команде FOR
Причем им пользоваться предпочтительньнее, т.к короткое имя от "С:\Мои документы" в системе выглядит как c:\C316~1


Время: 22:24.

Время: 22:24.
© OSzone.net 2001-