Показать полную графическую версию : (solved) текущую папку в переменную ?
подскажите плизз
как в (*.bat *.cmd) сохранить текущую папку в переменную (чтоб потом ее подставить в путь)
суть вот в чем
я запускаю бат из некой (непостоянной) папки и мне надо сделать следущее :
start C:\Program Files\D-Tools\daemon.exe -mount 0,"%текущая папка%\aaa.iso"
start C:\Program Files\D-Tools\daemon.exe -mount 0,"%CD%\aaa.iso" %CD% как раз и означает "текущая папка" (current dir)
я пытался сделать следущее :
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 не меняться.
mitiya
Если тебя конкретно интересует автоматическая установка Lingvo 10 то глянь тут
http://forum.oszone.net/showthread.php?t=46951&page=all
на данный момент меня именно автоматическая установка лингво уже не очень интересует (выше описанную проблему я обошел. Т.к я телал CD с лингво то я папка из каторой я запускаю *.bat это cdrom , но если я к примеру скину содержимое этого CD камуть на винт ,то возникнет проблема)
Но меня попрежнему интересует как сохранить текущую папку в переменную , я чувствую что это даже очень может пригодиться
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
Полный батник покажи...
Можете попробовать использовать путь к самому бат-файлу, который как известно хранится в %0
echo %~d0%~p0
VseDoFeNi
20-09-2005, 23:00
TbMA
%CD% - раскрывает в текущий каталог. Иногда удобнее с ним работать.
VseDoFeNi
А там наверху написано как он с ней мучалси.
VseDoFeNi
20-09-2005, 23:16
TbMA
Вот я и попросил весь батник показать. У меня ни разу с ней проблем не было.
вот так выглядит батник сейчас : (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"
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% и должна меняться, она указывает текущий каталог, но ты переменную раньше определил.
блин и правда каботает , фиг знает я ведь точно так пробовал , наверное в самый ненужный момент перепутал mountDir и CD
:closed-to
Я, чтобы не пыхтеть с пробелами в именах, особенно известных папок, применяю их укороченные варианты
например, надо "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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.