109: (Default)
[personal profile] 109
что-то не могу сообразить. есть relative path, типа "..\..\my\special\folder\containing\generic\scripts", который в начале выполнения cmd скрипта надо добавить в path, чтобы оттуда можно было вызывать по-быстрому. но добавлять, естественно, надо absolute path, а не relative. как одно в другое превратить внутри командника?

и, уж раз зашла такая пьянка - как из программы, запущенной из комадника, передать что-нибудь обратно в этот командник? передать что-нибудь более осмысленное, чем errorlevel. под программой можно понимать что угодно - бинарник, powershell script, другой cmd script.

(no subject)

Date: 2007-10-11 09:08 am (UTC)
From: [identity profile] 109.livejournal.com
это было бы круто, но не работает, утверждая "i was unexpected at this time."

а попроще пример не можешь привести? скажем, мне не надо парсить, а просто запихнуть в environment variable.

(no subject)

Date: 2007-10-11 03:31 pm (UTC)
From: [personal profile] alll
В env variables родительского процесса запихнуть невозможно, насколько я помню.

Насчёт не работает - может покажешь код?

(no subject)

Date: 2007-10-11 06:12 pm (UTC)
From: [identity profile] 109.livejournal.com
так твой не работал :)
как стало ясно из второго сниппета, нужен двойной процент.

мапед не мой

Date: 2007-10-12 08:22 am (UTC)
From: [personal profile] alll
какой-такой мой? я прямо из "help for" цитировал. :)
А насчёт %% - это очень древний прикол. :)

(no subject)

Date: 2007-10-11 03:47 pm (UTC)
From: [personal profile] alll
Короче, вот такой код в test.cmd
-----cut here-----------
@echo off
FOR /F "usebackq" %%I IN (`echo testtest`) DO set mytest=%%I

echo %mytest%
-----cut here-----------
выдаёт в stdout
testtest

Вместо `echo testtest` можно подставить любой исполняемый файл, выдающий в stdout нужное значение. Там в-принципе ещё можно и split полученной строчки сделать по произвольному разделителю, но это, как я понимаю, уже лишнее. :)

(no subject)

Date: 2007-10-11 06:10 pm (UTC)
From: [identity profile] 109.livejournal.com
ура, заработало! а напрямую stdout принять в env-variable нет способов?

(no subject)

Date: 2007-10-12 08:29 am (UTC)
From: [personal profile] alll
В микрософтофском шелле - нет, насколько я мне известно.
В юниксовых есть тот самый бэктик (``), кастрированый вариант которого засветился в микрософтовском FOR.

Profile

109: (Default)
109

March 2019

S M T W T F S
     12
3456789
101112131415 16
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags