Вход на сайт
batch file - variable
59
31.07.07 12:43
как правильно присвоить переменной результат выполненой комманды
что то типа
set abc=<комманда>
abc должна содержать в этом примере то что ей выдаст <комманда>.
возможно ли это?
что то типа
set abc=<комманда>
abc должна содержать в этом примере то что ей выдаст <комманда>.
возможно ли это?
NEW 31.07.07 14:05
в ответ anatoli888 31.07.07 12:43
"in bash $? returns the exit status of the last executed command."
http://www.linuxforums.org/forum/linux-programming-scripting/72247-capture-exit-...
---
У студента два праздника: Новый год и каждый день!
http://www.linuxforums.org/forum/linux-programming-scripting/72247-capture-exit-...
---
У студента два праздника: Новый год и каждый день!
NEW 31.07.07 19:13
Команды - не функции - они ничего не возвращают.
Но они могут установить значение для переменной окружения - смотри переменную errerlevel.
P.S. мелкомягкие несколько раз меняли интерпритацию "области видимости" для переменных окружения и сейчас там черт ногу сломит - надо смотреть конкретно под систему.
Но они могут установить значение для переменной окружения - смотри переменную errerlevel.
P.S. мелкомягкие несколько раз меняли интерпритацию "области видимости" для переменных окружения и сейчас там черт ногу сломит - надо смотреть конкретно под систему.
NEW 31.07.07 19:52
я имел ввиду к примеру more primer.txt - будет выдано содержание файла primer.txt
это содержание я хочу передать переменной, но не все а только выборочно. для этого я установил себе SFU (Services For Unix) и при помощи sed, awk, cat, head, tail ... выбираю то что мне нужно. вариант set /P var=< primer.txt работает но не для текста в кодировке koi8r. если к примеру взять primer.txt с содержанием "Мой самый любимый стих" в кодировке koi8r т.е. : "нПК УБНЩК МАВЙНЩК УФЙИ" и применить следующий код:
set /P var=< primer.txt
echo %var% > primer-temp.txt
то в primer-temp.txt мы получим следующее: -╝╘ б=-л╘ ╚о╕Ё-л╘ бвЁе
т.е. на нПК УБНЩК МАВЙНЩК УФЙИ налогается кодировка 866. я качнул консольный прибамбас для изменения кодировки и пайпом попытался изменить ситуацию, но никак немогу добиться того что бы в var содержалось то что находится в primer.txt (а именно это и говорится в: set /P var=< primer.txt
)
я в шоке.
у кого нить есть идеи. желательно не переходить на vbs
это содержание я хочу передать переменной, но не все а только выборочно. для этого я установил себе SFU (Services For Unix) и при помощи sed, awk, cat, head, tail ... выбираю то что мне нужно. вариант set /P var=< primer.txt работает но не для текста в кодировке koi8r. если к примеру взять primer.txt с содержанием "Мой самый любимый стих" в кодировке koi8r т.е. : "нПК УБНЩК МАВЙНЩК УФЙИ" и применить следующий код:
set /P var=< primer.txt
echo %var% > primer-temp.txt
то в primer-temp.txt мы получим следующее: -╝╘ б=-л╘ ╚о╕Ё-л╘ бвЁе
т.е. на нПК УБНЩК МАВЙНЩК УФЙИ налогается кодировка 866. я качнул консольный прибамбас для изменения кодировки и пайпом попытался изменить ситуацию, но никак немогу добиться того что бы в var содержалось то что находится в primer.txt (а именно это и говорится в: set /P var=< primer.txt
я в шоке.
у кого нить есть идеи. желательно не переходить на vbs
NEW 31.07.07 20:26
в ответ anatoli888 31.07.07 19:52
я в шоке.
-----
Я - тоже.
rem - может не работать - пишу по памяти, без проверки
set file="primer"
set source=%file%".txt"
set target=%file%-temp.txt
copy /b %source% %target%
Это то, что должно быть в батнике - спецификация имен файлов и вызов команды выполняющей заданную обработку этих файлов. Сам бач заставлять обрабатывать файлы - не стоит...
-----
Я - тоже.
rem - может не работать - пишу по памяти, без проверки
set file="primer"
set source=%file%".txt"
set target=%file%-temp.txt
copy /b %source% %target%
Это то, что должно быть в батнике - спецификация имен файлов и вызов команды выполняющей заданную обработку этих файлов. Сам бач заставлять обрабатывать файлы - не стоит...
NEW 01.08.07 03:10
в ответ Murr 31.07.07 20:26
наковырял в чем была проблема.
зря грешил на set. это оказался sed из пакета SFU предлагаемый самим майкрософтом, но от этого не легче.
пошагово выдавал все в debug.txt и при выполнении: sed "s@xxx@тут должен быть текст в кодрировке koi8r@g" текст коверкался.
буду проверять остальные, переходить на shell script юникса. мне в нем удобней и понятней.
спасибо за поддержку!
зря грешил на set. это оказался sed из пакета SFU предлагаемый самим майкрософтом, но от этого не легче.
пошагово выдавал все в debug.txt и при выполнении: sed "s@xxx@тут должен быть текст в кодрировке koi8r@g" текст коверкался.
буду проверять остальные, переходить на shell script юникса. мне в нем удобней и понятней.
спасибо за поддержку!

