Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Запуск программы с параметрами

Ответить
Настройки темы
CMD/BAT - Запуск программы с параметрами

Новый участник


Сообщения: 37
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Yo Den
Дата: 14-06-2014
Нужно, чтобы программа 123.exe запускалась с параметром -"название папки в которой она находится в данный момент (при этом название папки может меняться, поэтому параметр динамичен)". Вот так все работает:

@echo off
set name=%~dp0
for /d %%a in ("%name:~0,-1%") do set name=%%~na
cd ..
start 123.exe -%name%

Но тут я не особо понимаю, как это реализовано, поэтому спрашиваю, есть ли в нём что-то лишнее, можно ли его сократить?

Отправлено: 20:22, 14-06-2014

 

Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@echo off
set "name=%~dp0"
for /d %%a in ("%name:~0,-1%") do start "" "..\123.exe" -%%~nxa
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:17, 14-06-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 37
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Georgio:
@echo off
set "name=%~dp0"
for /d %%a in ("%name:~0,-1%") do start "" "..\123.exe" -%%~nxa »
спасибо. а что все-таки означает "("%name:~0,-1%")"?

Отправлено: 22:26, 14-06-2014 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Можно попробовать:
Код: Выделить весь код
start "" "123.exe" -%~dp0\.
Непонятно, зачем «..».

Цитата Yo Den:
а что все-таки означает "("%name:~0,-1%")"? »
Содержимое переменной окружения %name% без последнего символа (в данном случае завершающий обратный слэш):
Код: Выделить весь код
set /?

Отправлено: 22:36, 14-06-2014 | #4


Новый участник


Сообщения: 37
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
start "" "123.exe" -%~dp0\. »
не, так не работает, способ Georgio подошел.
Цитата Iska:
Непонятно, зачем «..». »
123.exe находится вверх на каталог
Цитата Iska:
Содержимое переменной окружения %name% без последнего символа (в данном случае завершающий обратный слэш): »
а если мне не обязательно убирать завершающий слеш, что изменить в этой строке (в целях экономии символов)?

Отправлено: 23:00, 14-06-2014 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Yo Den:
123.exe находится вверх на каталог »
Тогда формулируйте:
Цитата Yo Den:
чтобы программа 123.exe запускалась с параметром -"название папки в которой она находится в данный момент »
точнее.

Цитата Yo Den:
не, так не работает, »
Если приложение у Вас находится в родительском каталоге:
Код: Выделить весь код
start "" "..\123.exe" -%~dp0\.
Цитата Yo Den:
а если мне не обязательно убирать завершающий слеш, что изменить в этой строке (в целях экономии символов)? »
Перефразируйте вопрос.

Отправлено: 23:14, 14-06-2014 | #6


Новый участник


Сообщения: 37
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
Тогда формулируйте:
Цитата Yo Den:
чтобы программа 123.exe запускалась с параметром -"название папки в которой она находится в данный момент »
точнее. »
да, ошибся тут. В папке с 123.ехе есть папка (к примеру она называется newfile), в которой есть батник, который должен запускать программу с параметром -newfile (где newfile, название папки, но оно как я уже говорил, будет постоянно менятся, так что должно быть динамическим).

Цитата Iska:
а если мне не обязательно убирать завершающий слеш, что изменить в этой строке (в целях экономии символов)?Перефразируйте вопрос. » »
ну то есть программу можно запускать и со слешем в конце параметра: 123.exe -newfile/ .Как сократить "%name:~0,-1%", чтобы не удалялся слеш?

Отправлено: 00:02, 15-06-2014 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Yo Den:
ну то есть программу можно запускать и со слешем в конце параметра: 123.exe -newfile/ .Как сократить "%name:~0,-1%", чтобы не удалялся слеш? »
Так:
Цитата:
start "" "..\123.exe" -%~dp0
О каком приложении идёт речь — «123.exe»?

Отправлено: 00:21, 15-06-2014 | #8


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Yo Den, сократил код до одной строки:
Код: Выделить весь код
@for %%a in ("%~dp0.") do @start "" "..\123.exe" -%%~nxa
.
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:50, 15-06-2014 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Запуск программы с параметрами

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Запуск программы с параметрами Rulezzz2 AutoIt 8 31-03-2013 05:16
CMD/BAT - [решено] Запуск в новом окне с доп. параметрами subuday77 Скриптовые языки администрирования Windows 3 25-03-2013 05:33
CMD/BAT - [решено] Запуск программы с параметрами art.andr Скриптовые языки администрирования Windows 5 27-07-2012 16:18
Разное - [решено] Запуск с настроенными параметрами очистки диска HamBit Microsoft Windows 7 3 09-07-2012 01:04
CMD/BAT - [решено] Запуск программы с разными параметрами root221 Скриптовые языки администрирования Windows 8 02-02-2012 19:58




 
Переход