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

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

Emulty 23-07-2011 15:50 1718415

Последний символ при раскрытии %~dp0
 
Здравствуйте товарищи!

Подскажите каким способом проще всего отрезать последний символ при раскрытии %~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 1718480

Код:

@Echo Off
Set RunPath=%~dp0
Set RunPath=%RunPath:~0,-1%
Echo %RunPath%\Program1\program.exe
Pause


Foreigner 23-07-2011 18:31 1718507

Код:

set "runpath=%~dp0\"
echo %runpath:\\=\%Program1\prog.exe


kiripanda 23-07-2011 18:44 1718512

Emulty
В каком случае неработоспособен X:\Folder\\Program1\program.exe ?
Попробуйте %RunPath%.\Program1\program.exe

Emulty 24-07-2011 14:35 1718888

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

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


Время: 00:10.

Время: 00:10.
© OSzone.net 2001-