Запуск программы с параметрами
Нужно, чтобы программа 123.exe запускалась с параметром -"название папки в которой она находится в данный момент (при этом название папки может меняться, поэтому параметр динамичен)". Вот так все работает:
@echo off
set name=%~dp0
for /d %%a in ("%name:~0,-1%") do set name=%%~na
cd ..
start 123.exe -%name%
Но тут я не особо понимаю, как это реализовано, поэтому спрашиваю, есть ли в нём что-то лишнее, можно ли его сократить?
|
Код:
@echo off
set "name=%~dp0"
for /d %%a in ("%name:~0,-1%") do start "" "..\123.exe" -%%~nxa
|
Цитата:
Цитата Georgio
@echo off
set "name=%~dp0"
for /d %%a in ("%name:~0,-1%") do start "" "..\123.exe" -%%~nxa »
|
спасибо. а что все-таки означает "("%name:~0,-1%")"?
|
Можно попробовать:
Код:
start "" "123.exe" -%~dp0\.
Непонятно, зачем «..».
Цитата:
Цитата Yo Den
а что все-таки означает "("%name:~0,-1%")"? »
|
Содержимое переменной окружения %name% без последнего символа (в данном случае завершающий обратный слэш):
|
Цитата:
Цитата Iska
start "" "123.exe" -%~dp0\. »
|
не, так не работает, способ Georgio подошел.
123.exe находится вверх на каталог
Цитата:
Цитата Iska
Содержимое переменной окружения %name% без последнего символа (в данном случае завершающий обратный слэш): »
|
а если мне не обязательно убирать завершающий слеш, что изменить в этой строке (в целях экономии символов)?
|
Цитата:
Цитата Yo Den
123.exe находится вверх на каталог »
|
Тогда формулируйте:
Цитата:
Цитата Yo Den
чтобы программа 123.exe запускалась с параметром -"название папки в которой она находится в данный момент »
|
точнее.
Если приложение у Вас находится в родительском каталоге:
Код:
start "" "..\123.exe" -%~dp0\.
Цитата:
Цитата Yo Den
а если мне не обязательно убирать завершающий слеш, что изменить в этой строке (в целях экономии символов)? »
|
Перефразируйте вопрос.
|
Цитата:
Цитата Iska
Тогда формулируйте:
Цитата Yo Den:
чтобы программа 123.exe запускалась с параметром -"название папки в которой она находится в данный момент »
точнее. »
|
да, ошибся тут. В папке с 123.ехе есть папка (к примеру она называется newfile), в которой есть батник, который должен запускать программу с параметром -newfile (где newfile, название папки, но оно как я уже говорил, будет постоянно менятся, так что должно быть динамическим).
Цитата:
Цитата Iska
а если мне не обязательно убирать завершающий слеш, что изменить в этой строке (в целях экономии символов)?Перефразируйте вопрос. » »
|
ну то есть программу можно запускать и со слешем в конце параметра: 123.exe -newfile/ .Как сократить "%name:~0,-1%", чтобы не удалялся слеш?
|
Цитата:
Цитата Yo Den
ну то есть программу можно запускать и со слешем в конце параметра: 123.exe -newfile/ .Как сократить "%name:~0,-1%", чтобы не удалялся слеш? »
|
Так:
Цитата:
start "" "..\123.exe" -%~dp0
|
О каком приложении идёт речь — «123.exe»?
|
Yo Den, сократил код до одной строки:
Код:
@for %%a in ("%~dp0.") do @start "" "..\123.exe" -%%~nxa
.
|
Время: 15:25.
© OSzone.net 2001-