Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Подскажите, как модиф-ть пакет. файл так, чтоб в процессе выпол-ния ... (http://forum.oszone.net/showthread.php?t=202501)

Ksenya 20-03-2011 10:53 1639311

Подскажите, как модиф-ть пакет. файл так, чтоб в процессе выпол-ния ...
 
отображалось определенное кол-во раз выражение, к примеру: «********* the For command **********».
____________
Файл содержит:
____
Echo Off
Set Drive=D:
For /F "Tokens=1 Delims=:" %%A In ('Dir %Drive% /B /S /AD^|FindStr /IN .') Do Set Count=%%A
Echo The number of directoryes on the disk: %Drive% %Count%
Pause
Exit
_____
* Мои преобразования ни к чему не привели(((
____
Наверно, я что-то путаю..но, все же:
__
Echo Off
Set Drive=D:
For /F "Tokens=1 Delims=:" %%A In ('Dir %Drive% /B /S /AD^|FindStr /IN .') Do Set Count=%%A
Echo The number of directoryes on the disk: %Drive% %Count%
Pause
For /F "Tokens=2,4,6* delims=," %%R in (3-v-2.txt) do Set %%R="********* the For command **********" %K="********* the For command **********" %P="********* the For command **********"
Echo K , P
Pause
Exit
___
*Извиняюсь за свой бред.)

lxa85 20-03-2011 12:40 1639373

Ksenya, сделай пожалуйста синтаксический разбор по строкам, "что", "куда" и "зачем", я признаться не силен в написании bat'ников.
Однако, как я понял, это 2 разных цикла. (преобразованный файл)

Код:

For /F "Tokens=1 Delims=:" %%A In ('Dir %Drive% /B /S /AD^|FindStr /IN .') Do Set Count=%%A

For /F "Tokens=2,4,6* delims=," %%R in (3-v-2.txt) do Set %%R="********* the For command **********" %K="********* the For command **********" %P="********* the For command **********"

Во втором случае (структурно) данные берутся из 3-v-2.txt Он вообще есть? Какого его содержимое?

Ksenya 20-03-2011 13:40 1639414

Хорошо, в первой строчке описано действие, позволяющее рассчитать общее кол-во файлов на диске d;
во второй..а здесь уже глюки - я попыталась задать некоторым переменным: К,P,R - строковые значения "********* the For command **********", причем эти строки должны располагаться при выполнении файла в последовательности: 2-ая, 4-ая и 6-ая..
я запуталась в том, что эти самые строчки не заимствуются из какого-либо файла..( по заданию не указывается )..вообщем файла как такового нет=*

Ksenya 20-03-2011 14:53 1639454

походу нет никаких вариантов.((

Iska 20-03-2011 14:55 1639456

lxa85, Вы хоть что-то поняли. Я — вообще ничего ;).

Dr.Dark 20-03-2011 15:03 1639460

Ksenya, какую задачу вам нужно выполнить? Объясните... Нужно вывести на экран список файлов на диске или??

Ksenya 20-03-2011 19:53 1639590

Уже выведено:
1)Подсчитать количество каталогов на локальном диске, воспользовавшись
командой циклической обработки данных, в процессе выполнения выводя ре-
зультат в переменную среды, выбранную самостоятельно.
надо только:
2)"Модифицируйте пакетный файл, полученный в предыдущем задании,
воспользовавшись командой циклической обработки данных таким образом, что-
бы в процессе его выполнения отображалось определенное количество раз выра-
жение «********* the For command **********»".
___
А вот с пунктом 2) я запуталась..(
то бишь вывести и список файлов и строки, с данным выражением...

lxa85 20-03-2011 20:27 1639619

Ksenya, я кажется понял как это работает :)
Разбор будет выглядеть примерно так:
Код:

For /F "Tokens=1 Delims=:" %%A In
For - начало цикла
/F "Tokens=1 Delims=:" %%A - какое-то хитрое условие
In - ключевое слово "В".
Т.е. в русском стиле будет так: Для чего-то В
В чем? В этом:
Код:

('Dir %Drive% /B /S /AD^|FindStr /IN .')
В Dir - директории, с какими-то хитрыми параметрами
FindStr - Найти строку
In . - В директории (точка '.' обозначает символьную ссылку каталога на самого себя. Две точки '..' на вышестоящий каталог)
Вот тут и получается, как я понял, рекурсия.
На русском этот кусок звучит как-то так : Директорию найти в содержимом себя.

Код:

Do Set Count=%%A
Do - выполнить
Set Count установить счетчик равный чему-то.

2ое задание заключается в выводе *the FOR command* при "проваливании" в директорию. Т.к. будет сделано новое перечисление. Т.е. вписывается где-то здесь:
FindStr /IN .

***
Вообще любопытно посмотреть на результаты работы команд.
Все выше написанное - мои рассуждения вслух, а не руководство к действию :)


Время: 11:42.

Время: 11:42.
© OSzone.net 2001-