PDA

Показать полную графическую версию : (solved) текущую папку в переменную ?


mitiya
19-09-2005, 17:49
подскажите плизз

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

суть вот в чем

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

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

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

mitiya
20-09-2005, 14:03
я пытался сделать следущее :
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
mitiya


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

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

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

Vadikan
20-09-2005, 21:11
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
mitiya
Полный батник покажи...

TbMA
20-09-2005, 21:18
Можете попробовать использовать путь к самому бат-файлу, который как известно хранится в %0

echo %~d0%~p0

VseDoFeNi
20-09-2005, 23:00
TbMA
%CD% - раскрывает в текущий каталог. Иногда удобнее с ним работать.

TbMA
20-09-2005, 23:08
VseDoFeNi
А там наверху написано как он с ней мучалси.

VseDoFeNi
20-09-2005, 23:16
TbMA
Вот я и попросил весь батник показать. У меня ни разу с ней проблем не было.

mitiya
22-09-2005, 14:11
вот так выглядит батник сейчас : (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
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
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
mitiya
Ну не может такого быть, смотри любой мой батник, благо их немало :)
NRTool хотя бы посмотри. http://unacreator.elitecom.ru/click/fclick.php?ad=17
%CD% и должна меняться, она указывает текущий каталог, но ты переменную раньше определил.

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

:closed-to

IlyaNSK
13-06-2012, 10:23
Я, чтобы не пыхтеть с пробелами в именах, особенно известных папок, применяю их укороченные варианты

например, надо "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




© OSzone.net 2001-2012