Этот сценарий Supybot для Windows пакетной установки должен создать другой пакетный файл - PullRequest
1 голос
/ 04 апреля 2011

Этот сценарий Supybot для Windows должен создать еще один пакетный файл ...

Проблема :

(1) У меня есть каталог с файлом, который заканчивается на .conf

(2) В этом каталоге есть только один файл, который заканчивается на .conf

(3) Но я не знаю, с чего начинается этот файл ... все, что я знаю, это ????????. Conf

(4) Как установить файл filename.conf и удалить часть .conf имени файла?

(5) Так как это только начало имени файла, которое мне нужно.

Пример:

C: \ runbot> find "supybot.ident:" | введите * .conf> temp.txt

robotbot.conf

Выходы: robotbot.conf

Квест, как мне установить переменную = robotbot

=============================================== ==========================

Входной файл был этот файл с именем "RootCode.conf" среди многих других в каталоге искали:

RootCode.conf

Решение :

FOR / F "tokens = 1,2 delims =." %% a in ('FINDSTR / M "supybot.ident:" * .conf') DO SET USER = %% a & set dontneed = %% b

эхо% USER%

пауза

Выход :

C: \ runbot> FOR / F "tokens = 1,2 delims =." % a in ('FINDSTR / M "supybot.ident:" * .con f ') УСТАНОВИТЬ ПОЛЬЗОВАТЕЛЯ =% a & установить dontneed =% b

C: \ runbot> SET USER = RootCode & set dontneed = conf

C: \ runbot> echo RootCode RootCode

C: \ runbot> пауза Нажмите любую клавишу для продолжения . , .

Победитель ... Особая благодарность Всем

Ответы [ 2 ]

1 голос
/ 04 апреля 2011

Ваш пример передачи вывода в команду type неверен или бесполезен.Итак, я предполагаю, что вы набрали опечатку, а настоящая строка шла по другому пути, и поэтому я предполагаю, что вы пытаетесь найти имя файла, содержащего строку «supybot.ident:».В этом случае я бы предложил использовать команду findstr.

FOR /F "tokens=*" %%a in ('FINDSTR /M "supybot.ident:" *.conf') DO SET USER=%%a

См. HELP FINDSTR, HELP SET и HELP FOR для получения дополнительной информации.

1 голос
/ 04 апреля 2011

Немного неясно (для меня, по крайней мере), что именно вы спрашиваете здесь.Но если вам нужен вывод команды, используйте for /f:

for /f "delims=" %%x in ('some command ^| line') do set somevar=%%x

Обратите внимание, что вам нужно экранировать метасимволы командной строки в командной строке (так как они должны пережить один проход синтаксического анализа).Также обратите внимание, что вы не можете установить переменную, содержащую более одной строки текста.

...