1 | |
Символ переноса строки в переменной окружения11.09.2012, 16:31. Показов 23077. Ответов 7
Метки нет (Все метки)
Всем привет.
Пишу bat-ник по заданию в институте. В принципе все получается, но хотелось бы улучшить код. Подскажите, можно ли вставить в переменную окружения символ новой строки. Мне нужно пробежаться по списку всех запущенных процессов и устроить им некую обработку. Список названий процессов могу получить 1) либо в переменной окружения - но тогда они разделены каким-то мною заданным символом, сейчас звездочкой - *, 2) либо в файле - тогда каждое название на своей строке, но работа с файлом меня не совсем устраивает.
0
|
11.09.2012, 16:31 | |
Ответы с готовыми решениями:
7
Символ переноса в Excel (Как заменить символ на перенос строки) Распознавание строки, в которой разделителями является символ переноса строки Символ переноса строки в textarea Символ переноса строки в ТекстБокс |
15.09.2012, 22:45 | 2 | |||||||||||||||
Разделяя их знаком равенства вместо звездочки, Вы можете пройтись по каждому имени процесса так:
1. Из файла proxy 2.ini
1
|
21.09.2012, 20:58 | 4 | |||||
Честно, не знаю как это сделать.
Как говорил, один очень известный человек, лучше плохо написанная программа, но работающая, чем хорошо написанная, но неработающая. Пример нерационального, но полностью рабочего кода:
0
|
612 / 92 / 14
Регистрация: 15.08.2012
Сообщений: 62
|
|
23.09.2012, 19:40 | 5 |
Сообщение было отмечено как решение
Решение
Dragokas, я позволил себе пойти немного другим путем, чем Вы. В данном случае, длинна списка с процессами не ограничивается ничем, кроме самой максимальной длинны одиночной переменной, вместо 26 позиций у Вас.
Кроме того, сменён разделитель, причины описаны в комментариях скрипта. Код
@Echo off SetLocal EnableDelayedExpansion :: Разделитель сменён мною на ; по следующим причинам - не содержится в именах файлов и путях, :: не является спецсимволом, на который может некорректно отреагировать интерпретатор ::Тест - заносим список процессов, разделенных ; в переменную Set Proc=c:\test.exe;2;3;4 4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25 :: Подготавливаем список для работы с циклом :: Замена разделителя на внутренние кавычки Set Proc=%Proc:;=" "% :: Добавка внешних двойных кавычек Set Proc="%Proc%" :: Обрабатываем в цикле, пишем каждый процесс в свою переменную :: Собственно, если запись процессов в переменную не нужна, то :: можно работать с ними прямо тут и не плодить излишних сущностей Set i=0 For %%A In (%Proc%) Do (Set /A i+=1&Set $Process_!i!==%%~A) :: Работаем с записанными ранее процессами For /F "tokens=2 delims==" %%A In ('Set $Process') Do ( Echo Doing something with %%A... ) Pause>nul
6
|
Модератор
5231 / 2106 / 414
Регистрация: 06.01.2013
Сообщений: 4,835
|
||||||
02.01.2014, 19:35 | 7 | |||||
Осторожно! Сейчас будет некропостинг.
1
|
02.01.2014, 20:09 | 8 |
Все правильно.
Этому способу как раз здесь место. С НГ, некропостер !!!
1
|
02.01.2014, 20:09 | |
02.01.2014, 20:09 | |
Помогаю со студенческими работами здесь
8
Не работает символ переноса строки \n Убрать символ переноса строки Не работает символ переноса строки Не работает символ переноса строки \n Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |