Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Батник просто закрывается

Ответить
Настройки темы
CMD/BAT - [решено] Батник просто закрывается

Пользователь


Сообщения: 116
Благодарности: 1

Профиль | Отправить PM | Цитировать


что я делаю не так?
Код: Выделить весь код
setlocal enableextensions enabledelayedexpansion
@Echo OFF
set /A "VAR=8" //Задаём проверяемую переменную
set /A "CHECK=0" //задаём проверяющюю перменную
:DLINACHECK //начало цикла проверки
set /A "CHECK+=1" //увеличиваем проверяющюю переменную на 1
if "!VAR!"=="!CHECK!" (goto END) else if "!CHECK!"="10" (goto ENDEND) else goto DLINACHECK //проверяем,если проверяемая переменная равна проверяющей то идти к успешному концу,иначе проверить равна ли проверяющая переменная 10-ти если равна идти к неудачному концу иначе идти к началу цикла проверки
:END //удачный конец
Echo FOUND
pause
:ENDEND //Неудачный конец
echo NOT FOUND
pause
endlocal
комментарии писал уже на форуме так-что не кричите на меня что типо изза коментов не робит батник...
при запуске батника он просто закрывается...
суть:пытаюсь на цикле реализовать проверку на длину содержимого переменной...да,я знаю,похожая тема от меня уже была...там Iska предлогал более короткий вариант но я так и не допер как им пользоваться))
либо я разучился писать батники либо не стоило смотреть 11 гайдов по C# подряд в режиме марафона...

Отправлено: 22:36, 29-09-2017

 

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата Darkar25:
комментарии писал уже на форуме так-что не кричите на меня что типо изза коментов не робит батник... »
И тем не менее:
Цитата:
Код: Выделить весь код
C:\Мои проекты\0119>setlocal enableextensions enabledelayedexpansion
Непредвиденное появление: ="10".
Берётесь писать комментарии — для них есть REM.

Цитата Darkar25:
да,я знаю,похожая тема от меня уже была...там Iska предлогал более короткий вариант но я так и не допер как им пользоваться)) »
Спрашивайте, не стесняйтесь. Только там спрашивайте, не здесь.

Там мы проверяли длину строки. А здесь что Вы хотите сделать?

Цитата Darkar25:
либо не стоило смотреть 11 гайдов по C# подряд в режиме марафона... »
Не стоило. Лучше взять книжку страниц на тысячи полторы.
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:03, 29-09-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, Замечал много где пишут такие точки :: это тоже коментарий, где про этом ожно почитать?

Отправлено: 23:13, 29-09-2017 | #3


Пользователь


Сообщения: 116
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата Iska:
Цитата Darkar25:
либо не стоило смотреть 11 гайдов по C# подряд в режиме марафона... »
Не стоило. Лучше взять книжку страниц на тысячи полторы. »
не...я имею виду что это как в школе...ты проучился среднюю школу пошел в старшую и ты учишься и чему-то даже смог научиться но вот вспомнить чему тебя учили в средней школе уже не можешь...
Цитата Iska:
И тем не менее:
Цитата:
Код:
C:\Мои проекты\0119>setlocal enableextensions enabledelayedexpansion
Непредвиденное появление: ="10". »
а вот сейчас тот момент когда я понимаю что забыл поставить еще одно равно)))
теперь все норм...

Цитата Iska:
Там мы проверяли длину строки. А здесь что Вы хотите сделать? »
примерно тоже самое...
VAR- это переменная которая получается при вычислении длины строки...
CHECK- это максимальное и одновременно минимальное число символов которое должно быть в строке
как работает CHECK?
сначала ей задается число на 1 меньше минимального числа символов в цикле ей зачисляется по 1 очку каждый прокрут...если переменная CHECK доходит до максимального кол-ва символов цикл прекращается и выводится сообщение с ошибкой(запланированной)...

Отправлено: 23:18, 29-09-2017 | #4


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата sioyong:
Iska, Замечал много где пишут такие точки :: это тоже коментарий, где про этом ожно почитать? »
Это ни разу не комментарий. Двоеточие — это метка. Два двоеточия подряд — ошибочная метка. Так делать не следует. Некоторые несознательные личности пользуются тем, что интерпретатор команд не обрывает исполнение пакетного файла на месте таких ошибочных меток и даже не сообщает об ошибке.

Цитата Darkar25:
примерно тоже самое...
VAR- это переменная которая получается при вычислении длины строки... »
Не надо вычислять длину строки. Я же уже показал, как проверять длину строки на допустимые пределы в той теме: CMD/BAT - числовая переменная больше числа или нет.
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:47, 29-09-2017 | #5


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, Что такое метка, для чего она? Ч ем это плохо? Iska, Я в ком. строке ввожу /? там ничего про это не написано. где можно почитать? Извините если не в тему.

Отправлено: 23:56, 29-09-2017 | #6


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата sioyong:
Iska, Что такое метка, для чего она? »
Место в пакетном файле, на которое можно передать управление посредством goto или call.

Цитата sioyong:
Ч ем это плохо? »
Тем, что это не комментарий.

Цитата sioyong:
где можно почитать? »
Код: Выделить весь код
goto /?
call /?
Download Windows Command Reference from Official Microsoft Download Center
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:16, 30-09-2017 | #7


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


sioyong,
попробуйте поставить во второй строке комментария вместо "rem" - "::" и увидите что код начнет захлопываться, поэтому никто не использует "::" в качестве начала комментария в for или можно взять за привычку не использовать вообще нигде
Код: Выделить весь код
@echo off
title Spravka &: Еще и такой комментарий используют некоторые
for %%a in (goto call) do (
 :: Справка по командам с меткой перехода
 %%a /?
 rem Справка по командам с меткой перехода
)
pause
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:33, 30-09-2017 | #8


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


еще добавлю. Вот здесь видна разница между меткой и комментарием:
Код: Выделить весь код
@echo off
set "s=slovo"
call :%s%
pause& exit

::slovo
 echo Переход на эту метку не будет произведен
exit /b

:slovo
 echo Переход на эту метку произведен
exit /b
Получается перейти на строку комментария нельзя, но найти строку комментария можно:
Код: Выделить весь код
@echo off
set "s=slovo"
<"%~f0" find "::%s%" && call :%s%
pause& exit

::slovo
 echo Переход на эту метку не будет произведен
exit /b

:slovo
 echo Переход на эту метку произведен
exit /b
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:57, 30-09-2017 | #9


Пользователь


Сообщения: 116
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата Iska:
Не надо вычислять длину строки. »
именно в этом коде нет.
я планирую его вставить в батник где вычисляется длина и вбивается в переменную,после чего она проверяется этим кодом
Код: Выделить весь код
:DLINACHECK
set /A "CHECK+=1"
if "!VAR!"=="!CHECK!" (goto END) else if "!CHECK!"=="10" (goto ENDEND) else goto DLINACHECK
после чего если число входит в 1-10(в батнике в который я вставляю эту проверку 8-62) то оно идет дальше иначе возвращает к вводу строки и последующему вычислению длины и проверки...и так пока не будет введена строка корректной длины

Отправлено: 13:32, 30-09-2017 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Батник просто закрывается

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Iperf закрывается MeJIuFaRo Скриптовые языки администрирования Windows 6 24-03-2017 15:46
Установка - Не устанавливается драйвер (установщик просто закрывается) Vladislav0140 Microsoft Windows 7 1 26-12-2016 00:53
Любой язык - [решено] батник с автозагрузкой в реестр. Чтоб при загрузке загружался батник с автозагрузкой AndriuT Скриптовые языки администрирования Windows 10 01-08-2014 20:10
HotFixes Installer - просто батник в корне CD VseDoFeNi Автоматическая установка Windows 2000/XP/2003 32 16-05-2010 14:18
Разное - Закрывается IE7 oddin11 Microsoft Windows 2000/XP 11 18-11-2009 10:47




 
Переход