Войти

Показать полную графическую версию : [решено] Последний символ при раскрытии %~dp0


Emulty
23-07-2011, 15:50
Здравствуйте товарищи!

Подскажите каким способом проще всего отрезать последний символ при раскрытии %~dp0

Например есть батник, где есть необходимость определить переменную каталога из которого запускаем скрипт
==
%~dp0=RunPath
%RunPath%\Program1\program.exe
==
В итоге строка раскрывается в :
X:\Folder\\Program1\program.exe

В некоторых случаях двойной слеш \\ ничего не играет, в некоторых путь становиться не действительным. Я понимаю, что можно написать так:
%RunPath%Program1\program.exe
и на выхлопе будет уже все по человечески:
X:\Folder\\Program1\program.exe

Но вид:
%RunPath%Program1\program.exe
не сильно читаем, особенно, когда скрипт длинный и таких строк имеет много.

Поделитесь опытом и мыслями, пожалуйста.

gora
23-07-2011, 17:34
@Echo Off
Set RunPath=%~dp0
Set RunPath=%RunPath:~0,-1%
Echo %RunPath%\Program1\program.exe
Pause

Foreigner
23-07-2011, 18:31
set "runpath=%~dp0\"
echo %runpath:\\=\%Program1\prog.exe

kiripanda
23-07-2011, 18:44
Emulty
В каком случае неработоспособен X:\Folder\\Program1\program.exe ?
Попробуйте %RunPath%.\Program1\program.exe

Emulty
24-07-2011, 14:35
Спасибо всем за подсказки и отдельное gora!
* Сам периодически пишу относительно простые скрипты, многих нюансов еще не знаю, поэтому обратился за помощью.

==
kiripanda написал:
В каком случае неработоспособен X:\Folder\\Program1\program.exe ?
Попробуйте %RunPath%.\Program1\program.exe
==
Точно не помню, но был случай, когда один рабочий скрипт перенес с Win2003 на Win2008R2 и он перестал работать. Там вроде бы путь к исполняемому файлу перестал работать, то ли в параметрах у исполняемого файла был раскрывающийся путь к файлу из такой переменной. Когда убрал лишний слеш, все пошло.




© OSzone.net 2001-2012