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

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

Ответить
Настройки темы
CMD/BAT - Расскажите как работает данный кусок кода(регулярные выражения)

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


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


Конфигурация

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


Изменения
Автор: элькхар
Дата: 24-10-2012
Описание: Попросили весь код
Код: Выделить весь код

@echo off
title Super HELP

:main
echo Enter "HELP" for super help
echo.
echo Enter any key for start program
echo.
echo Enter "EX" for exit programm
echo.
set /p x=
if %errorlevel% GEQ 1 goto error
if %x%==help goto help
if %x%==ex goto ex

:begin
SETLOCAL ENABLEDELAYEDEXPANSION
IF NOT EXIST INT MKDIR INT
IF NOT EXIST EXT MKDIR EXT
FOR /F "tokens=1 usebackq" %%a IN (`HELP ^| FINDSTR /R /C:"^[A-Z]"`) DO (
SET FOUND=0
IF !FOUND! NEQ "1" (
FOR %%I IN ("%%a.COM") DO (
IF "%%~$PATH:I" NEQ "" SET FOUND="1"
) 
FOR %%I IN ("%%a.EXE") DO (
IF "%%~$PATH:I" NEQ "" SET FOUND="1"
) 
echo.%%a "!FOUND!" 
IF !FOUND!=="1" (%%a /? > EXT\%%a.txt) ELSE (HELP %%a > INT\%%a.txt)
))
pause > nul
cls
goto main

:help 
echo.
echo Super HElP 2012
echo.
pause > nul
cls
goto main

:error
echo.
echo ERROR! RE-ENTER!
echo.
pause > nul
cls
goto main

:ex
exit
Особенно интересует выделенное жирным, буду очень благодарен за описание регулярных выражений

Отправлено: 21:00, 24-10-2012

 

Ветеран


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

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


Почему Вы приводите только «выдранный» кусок кода? Почему бы Вам самому не попытаться разобраться, а затем уже спрашивать, если что непонятно будет?!

Отправлено: 21:13, 24-10-2012 | #2



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

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


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


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

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


Выдранный привел так как в остальном разобрался, а здесь не смог остальной код не несет никакой нагрузки к данной части, зачем мусорить?
Более конкретные вопросы
1)
Код: Выделить весь код
set /p x=
означает что x вводится с клавиатуры?
2)
Код: Выделить весь код
IF NOT EXIST INT MKDIR INT
IF NOT EXIST EXT MKDIR EXT
как работают эти строки?
3)
Код: Выделить весь код
FOR /F "tokens=1 usebackq" %%a IN (`HELP ^| FINDSTR /R /C:"^[A-Z]"`)
что такое usebackq?
(`HELP ^| FINDSTR /R /C:"^[A-Z]"`) как это работает?
4)
Код: Выделить весь код
(
SET FOUND=0
IF !FOUND! NEQ "1" (
FOR %%I IN ("%%a.COM") DO (
IF "%%~$PATH:I" NEQ "" SET FOUND="1"
)
снова что тут происходит? (что такое NEQ и "%%~$PATH:I")
5)
Код: Выделить весь код
pause > nul
зачем нужна эта строка?

Отправлено: 21:26, 24-10-2012 | #3


Ветеран


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

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


1. Да. Введённое с консоли значение, которое будет присвоено переменной окружения «x».

2.
Код: Выделить весь код
IF NOT EXIST INT MKDIR INT
IF NOT EXIST EXT MKDIR EXT
Если в текущем каталоге не существует файла или папки с именем «INT» («EXT») создать в текущем каталоге папку с именем «INT» («EXT»).

3.
Цитата элькхар:
что такое usebackq? »
Предикат, позволяющий использовать внутри команды в скобках как апостроф «'», так и кавычки «"», задействуя для ограничения строки с самой командой обратный апостроф «`».

Цитата элькхар:
(`HELP ^| FINDSTR /R /C:"^[A-Z]"`) как это работает? »
Выполните в командной строке:
Код: Выделить весь код
HELP | FINDSTR /R /C:"^[A-Z]"
— увидите. Символ «^» используется внутри скобок для экранирования специальных символов, здесь — для символа конвейера «|».

4.
Цитата элькхар:
что такое NEQ »
Код: Выделить весь код
if /?
Цитата элькхар:
и "%%~$PATH:I" »
Код: Выделить весь код
for /?
5. Сделать паузу. Обычно применяется при запуске пакетного файла непосредственно из Проводника, дабы дать возможность посмотреть результат исполнения пакетного файла перед закрытием окна консоли.
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:51, 24-10-2012 | #4


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


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

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


Огромное спасибо!

Отправлено: 22:04, 24-10-2012 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
регулярные выражения Ginger Вебмастеру 60 21-03-2012 01:11
bat cmd регулярные выражения AlterEgoFS Хочу все знать 1 19-10-2011 17:57
Разное - PHP - регулярные выражения: HELP GoldenOrb Программирование и базы данных 10 08-09-2008 16:47
PHP - регулярные выражения: HELP GoldenOrb Вебмастеру 13 18-07-2008 16:05
Регулярные выражения est Хочу все знать 6 02-10-2002 14:17




 
Переход