IAM
|
|
« : 29 Ноябрь 2007, 15:35:21 » |
|
Задача. Пользователь для обновления своей базы должен скопировать определённые файлы. Задаётся маска для копирования файла.
Сначала пользователь вводит последнюю цифру года, и это значение присваивается первой переменной из маски. Здесь нет проблем. Проблема возникает при вводе номера месяца, месяцев 12, т. е. больше 10 (Есть ограничение: в bat не может быть больше 10 переменных). Мне надо номер месяца, который вводит пользователь, присваивать другой переменной
Кто может подскажет чего-нибудь. :-?
За ранее всем спасибо!
|
|
« Последнее редактирование: 30 Ноябрь 2007, 14:17:48 от IAM »
|
Записан
|
Богатство человека - здоровье и мудрость
|
|
|
Толяныч
|
@echo off :loop if _%1 == _ goto end echo %1 shift goto loop :end
И вызови его как
1.bat 1 2 3 4 5 6 7 8 9 0 11 12 13 14 15
Или я неправильно понял ограничение на переменные?
|
|
« Последнее редактирование: 29 Ноябрь 2007, 16:31:33 от the »
|
Записан
|
|
|
|
VooDoo
|
что-то слабо понял. про максимум 10 переменных... ты имел ввиду параметров, типа: start.bat param1 param2 .... param10 ?
|
|
|
Записан
|
Are you human? - My body is. Do you feel pain? - My body does. ..- --- --- -.. --- ---
|
|
|
Толяныч
|
Ну или вот так (по крайней мере для Windows XP)
@echo off
set i=0
:loop
if _%1 == _ goto end
set /a i=i+1 echo #%i%
set month%i%=%1 echo %1
shift
goto loop
:end
echo %month1%, %month2%, %month3%, %month4%, %month5%, %month6%, %month7%, %month8%, %month9%, %month10%, %month11%, %month12%, %month13%, %month14%, %month15% ...
|
|
|
Записан
|
|
|
|
iddqd
|
оффтоп
на vbscript такие проблемы решать намного проще, если речь идет конечно не о лабе, где стоит четкое условие написать батник. сам раньше по глупости считал возможности скриптинга и автоматизации в винде очень скудными, пока не увидел wsh, wmi и компанию
|
|
|
Записан
|
|
|
|
Dj_NudnyJ
|
ещё немного оффтопа @rem = ' @echo off if exist %0 goto :ok C:\cygwin\bin\ruby.exe %0.bat goto :eof :ok C:\cygwin\bin\ruby.exe %0 goto :eof @rem ';
# # ruby code coes here #
print "And no problems :)"
|
|
|
Записан
|
|
|
|
iddqd
|
хех, круто конечно, но насколько я понимал вызываеццо код руби который идет в батнике дальше, верно? с удовольствием посмотрю как ты таким макаром заюзаеш ком-объекты винды
|
|
|
Записан
|
|
|
|
Dj_NudnyJ
|
как ты таким макаром заюзаеш ком-объекты винды никаким когда ты пишешь на руби, тебе больше ничего не надо 8-)
|
|
|
Записан
|
|
|
|
IAM
|
Ребята, всем ещё раз спасибо, нашёл свою ошибку. Спасибо также за наводку на vbscript, почитаю, попробую.
Тема закрыта
|
|
|
Записан
|
Богатство человека - здоровье и мудрость
|
|
|
maxposedon
|
хех, круто конечно, но насколько я понимал вызываеццо код руби который идет в батнике дальше, верно? с удовольствием посмотрю как ты таким макаром заюзаеш ком-объекты винды А какие проблемы? OLE, COM, WinAPI и тд ЕСТЬ в ruby, причём ни в каких нить библиотеках, а в самом ruby. И использывать из ruby excel через ole, никаких проблем. DeNiM, ты бы сначала внутрь проектов смотрел, прежде чем обвинять их). P.S. ruby жжот )
|
|
|
Записан
|
|
|
|
iddqd
|
хех, круто конечно, но насколько я понимал вызываеццо код руби который идет в батнике дальше, верно? с удовольствием посмотрю как ты таким макаром заюзаеш ком-объекты винды А какие проблемы? OLE, COM, WinAPI и тд ЕСТЬ в ruby, причём ни в каких нить библиотеках, а в самом ruby. И использывать из ruby excel через ole, никаких проблем. DeNiM, ты бы сначала внутрь проектов смотрел, прежде чем обвинять их). P.S. ruby жжот ) ну, вопервых что то или кавото в чем то я ни разу не обвинял имелось в виду что это не самый оптимальный подход. интерпретатор руби реализован и под wsh, так что совсем не обязательно запускать иво под cygwin'ом. в виду этого юзать cygwin ради руби и через сygwin ломиццо к виндовзным ком объектам (незнаю, можно так сделать или нет?) имхо бред и изврат читай внимательней и смотри код
|
|
« Последнее редактирование: 30 Ноябрь 2007, 16:54:21 от DeNiM »
|
Записан
|
|
|
|
maxposedon
|
cygwin ортогонален com-у) если честно использывать cygwin или не cygwin это вообще мелочи.
А вообще, всё что делает cygwin это реализует пару sys call-ов типа fork. )
|
|
|
Записан
|
|
|
|
iddqd
|
cygwin ортогонален com-у) млин, не софсем понимаю что ты хочеш этим сказать если честно использывать cygwin или не cygwin это вообще мелочи.
А вообще, всё что делает cygwin это реализует пару sys call-ов типа fork. ) т.е. нет разници - запускать эмулятор и под ним интерпретатор руби, или делать это напрямую?
|
|
|
Записан
|
|
|
|
maxposedon
|
1. ортогонален == независим
2. cygwin НЕ ЭМУЛЯТОР, не капли cygwin это всеголишь dll-ка в которой реализованы fork, kill, mmap, open, close и т.д
самая обыкновенная dll-ка)
|
|
|
Записан
|
|
|
|
iddqd
|
так нахрен нужен ваще cygwin в данном случае?
|
|
« Последнее редактирование: 30 Ноябрь 2007, 18:24:56 от DeNiM »
|
Записан
|
|
|
|
maxposedon
|
в данном случае просто стоит ruby собранный под cygwin, а не под mingw) и всеголишь. почему?) - не ко мне вопрос)
|
|
|
Записан
|
|
|
|
iddqd
|
что тебе и пытались объяснить
|
|
|
Записан
|
|
|
|
Dj_NudnyJ
|
от развели флейму DeNiM там cygwin нигде не запускается. просто руби лежит в директории c:\cygwin\bin (я не виноватъ что мне нравится версия руби под цыгвином, есть руби и нативно под вынь, как кому нравится)
|
|
|
Записан
|
|
|
|
iddqd
|
фсио, дашло
|
|
|
Записан
|
|
|
|
|