Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
4 / 4 / 2
Регистрация: 23.12.2013
Сообщений: 135

Что происходит в данном цикле?

29.02.2016, 08:09. Показов 1378. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите разобратся есть вот такой батник

Windows Batch file
1
2
3
4
5
6
7
8
9
@Echo Off
 
If "%~1"=="" Echo Неверный синтаксис& Exit /B
If "%~2"=="" Set $N=10& Set $F=%~1
If Not "%~2"=="" Set $N=%~1& Set $F=%~2
If Not Exist "%$F%" Echo Исходный файл не найден& Exit /B
 
For /F %%i In ('Type "%$F%"^|Find /C /V ""') Do Set /A $M=%%i-%$N%
For /F "Tokens=1* Delims=][" %%i In ('Type "%$F%"^|Find /N /V ""') Do If %%i GTR %$M% Echo.%%j
Не понимаю как идет цикл. Обьясните кто может...
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.02.2016, 08:09
Ответы с готовыми решениями:

Объясните что происходит в данном коде?
расскажите что происходит в этом коде? *(unsigned int*)&pack = GetCRC16(pack, 13); pack = GetCRC16(pack, 13

Что происходит в данном отрывке кода?
tmp:=a; a:=a; a:=tmp;

Что выполняется в данном цикле
void removeColumns(Matrix *a, int *xs, int n) { for (int i = 0; i < n-1; i++) { int swapped = 0; for (int j = 0; j < n-i-1; j++)...

3
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
29.02.2016, 19:27
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@Echo On
set "f1=1.txt"
rem set "f2=2.txt"
call :proc "%f1%" "%f2%"
pause
 
:proc 
If "%~1"=="" Echo Неверный синтаксис& Exit /B
If "%~2"=="" Set $N=10& Set $F=%~1
If Not "%~2"=="" Set $N=%~1& Set $F=%~2
If Not Exist "%$F%" Echo Исходный файл не найден& Exit /B
 
For /F %%i In ('Type "%$F%"^|Find /C /V ""') Do Set /A $M=%%i-%$N%
For /F "Tokens=1* Delims=][" %%i In ('Type "%$F%"^|Find /N /V ""') Do If %%i GTR %$M% Echo.%%j
exit /b
В строке 3 один раз так пробовать, как в коде, потом убрать rem (комментарий) и пробовать второй вариант.
Содержимое файла 1.txt любое, но более 11 строк, содержимое файла 2.txt цифры от 1 до 5 с столбик (по одной цифре в строчке). Вот и увидите как это работает.
0
4 / 4 / 2
Регистрация: 23.12.2013
Сообщений: 135
01.03.2016, 11:13  [ТС]
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Да я и так разобрался))

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
rem Отключаем вывод команд на экран (в том числе и вывод самой команды echo - поэтому и @)
@Echo Off 
 
rem Если первый аргумент, переданный батнику и очищенный от кавычек (символ тильда) отсутствует, то выводит на экран Неверный синтаксис и безусловно завершает батник без завершения cmd.exe
If "%~1"=="" Echo Неверный синтаксис& Exit /B 
 
rem Если второй аргумент, переданный батнику и очищенный от кавычек (символ тильда) отсутствует, то присваивает переменной N значение 10 и безусловно присваивает переменной F значение первого аргумента батника, очищенного от кавычек
If "%~2"=="" Set $N=10& Set $F=%~1 
 
rem Если второй аргумент, переданный батнику и очищенный от кавычек (символ тильда) присутствует, то присваивает переменной N первого аргумента батника, очищенного от кавычек и безусловно присваивает переменной F значение второго аргумента батника, очищенного от кавычек
If Not "%~2"=="" Set $N=%~1& Set $F=%~2 
 
rem Если не существует файл, путь которого находится в переменной F, то выводит на экран Исходный файл не найден и безусловно завершает батник без завершения cmd.exe
If Not Exist "%$F%" Echo Исходный файл не найден& Exit /B 
 
rem Производит подсчет строк в файле по пути из переменной F (включая пустые строки) и затем производит числовую операцию: вычитает из количества строк(включая пустые) значение переменной N далее записывает результат в переменную М. ^ - здесь экранирует |, чтобы вывод команды type попал на вход find
For /F %%i In ('Type "%$F%"^|Find /C /V ""') Do Set /A $M=%%i-%$N% 
 
rem В переменную j записывается вся строка (эта новая переменная создана, поскольку в Tokens стоит звездочка на конце). 
rem Идея этой строки батника следующая: вывести на экран строки из файла по пути из переменной F, при условии если номер строки, который находится в переменной %%i Больше чем значение переменной M, полученной на предыдущем этапе. (Причем если строка начинается с [ или c ] - эти символы не выводятся)
For /F "Tokens=1* Delims=][" %%i In ('Type "%$F%"^|Find /N /V ""') Do If %%i GTR %$M% Echo.%%j
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
01.03.2016, 11:43
Цитата Сообщение от RedDevilHat Посмотреть сообщение
For /F "Tokens=1* Delims=]["
, вот и славно, чуть поправлю, разбивка происходит на два токена, можно и так записать (я именно так и записываю)
Windows Batch file
1
For /F "Tokens=1,* Delims=][
, первый токен %%i это ] или [ а второй * (это тоже отдельный токен, который включает в себя все после обрезания предыдущим до следующего обрезания если есть) - %%j, именно то что и выводим.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.03.2016, 11:43
Помогаю со студенческими работами здесь

Описать что происходит в данном коде программы
Надо описать что происходит в данном коде программы(что происходит\делается) по блокам. ПРИМЕР: ------Зчитуємо точки початку і...

Подробно расписать что происходит в данном фрагменте кода
Int() :intez(0) {} Int(int intz) :intez(intz) {} распишите плиз, что где и зачем

Объяснить, что происходит в данном фрагменте кода (матрицы)
Вообщем столкнулся с первой проблемой в изучении данного языка (с++). Мой мозг просто отказывается понимать вот эти строчки и их результат....

Что происходит в цикле for?
Здравствуйте, не могу разобраться с условием работы в цикле for. Кто сведущ, объясните, пожалуйста, что это за условие такое? for...

Что происходит в цикле while?
public class Power { public static void main(String args){ int e, result; for ( int i = 0; i < 10; i++){ result = 1; e =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru