Показать полную графическую версию : Запуск программы с параметрами
Нужно, чтобы программа 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
@echo off
set "name=%~dp0"
for /d %%a in ("%name:~0,-1%") do start "" "..\123.exe" -%%~nxa »
спасибо. а что все-таки означает "("%name:~0,-1%")"?
Можно попробовать:
start "" "123.exe" -%~dp0\.
Непонятно, зачем «..».
а что все-таки означает "("%name:~0,-1%")"? »
Содержимое переменной окружения %name% без последнего символа (в данном случае завершающий обратный слэш):
set /?
start "" "123.exe" -%~dp0\. »
не, так не работает, способ Georgio подошел.
Непонятно, зачем «..». »
123.exe находится вверх на каталогСодержимое переменной окружения %name% без последнего символа (в данном случае завершающий обратный слэш): »
а если мне не обязательно убирать завершающий слеш, что изменить в этой строке (в целях экономии символов)?
123.exe находится вверх на каталог »
Тогда формулируйте:
чтобы программа 123.exe запускалась с параметром -"название папки в которой она находится в данный момент »
точнее.
не, так не работает, »
Если приложение у Вас находится в родительском каталоге:
start "" "..\123.exe" -%~dp0\.
а если мне не обязательно убирать завершающий слеш, что изменить в этой строке (в целях экономии символов)? »
Перефразируйте вопрос.
Тогда формулируйте:
Цитата Yo Den:
чтобы программа 123.exe запускалась с параметром -"название папки в которой она находится в данный момент »
точнее. »
да, ошибся тут. В папке с 123.ехе есть папка (к примеру она называется newfile), в которой есть батник, который должен запускать программу с параметром -newfile (где newfile, название папки, но оно как я уже говорил, будет постоянно менятся, так что должно быть динамическим).
а если мне не обязательно убирать завершающий слеш, что изменить в этой строке (в целях экономии символов)?Перефразируйте вопрос. » »
ну то есть программу можно запускать и со слешем в конце параметра: 123.exe -newfile/ .Как сократить "%name:~0,-1%", чтобы не удалялся слеш?
ну то есть программу можно запускать и со слешем в конце параметра: 123.exe -newfile/ .Как сократить "%name:~0,-1%", чтобы не удалялся слеш? »
Так:
start "" "..\123.exe" -%~dp0
О каком приложении идёт речь — «123.exe»?
Yo Den, сократил код до одной строки: @for %%a in ("%~dp0.") do @start "" "..\123.exe" -%%~nxa.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC