Batch script для начинающих / Хабр

kak sozdat bat fail thumb Прошивки
Содержание
  1. Что такое ttl и зачем его менять
  2. Выключение компьютеров по списку, созданному на основе сетевого окружения.
  3. Выполнение каких либо действий в заданный интервал времени.
  4. Выполнение команд по расписанию.
  5. Дисклеймер
  6. Задержки в командных файлах
  7. Запуск bat-файлов от имени администратора и по расписанию, скрытый запуск bat
  8. Изменение даты и времени файлов или папок.
  9. Использование переменных в командных файлах.
  10. Как создать файл с расширением bat
  11. Метки
  12. Наводим красоту
  13. Определение доступности ip-адреса
  14. Определение текущей версии windows.
  15. Остановка и запуск системных служб.
  16. Передача параметров командному файлу.
  17. Перекодировка текстовых файлов.
  18. Переменные
  19. Переходим к практике
  20. Переходы и метки.
  21. Подводим интернет в частный дом
  22. Подключаем huawei 3372h к роутеру для раздачи интернета
  23. Подробнее о переменных
  24. Поиск в локальной сети включенных компьютеров.
  25. Поиск компьютеров с запущенным приложением
  26. Поиск компьютеров с запущенным приложением по списку
  27. Пример создания архива каталога “мои документы”.
  28. Примеры использования утилиты touch.exe в командной строке windows:
  29. Примеры командных файлов.
  30. Присвоение съемному диску одной и той же буквы.
  31. Работа с дисками, файлами и каталогами.
  32. Разлочка huawei 3372h. смена imei, ttl
  33. Что такое ttl и зачем его менять
  34. Переходим к практике
  35. Подключаем huawei 3372h к роутеру для раздачи интернета
  36. Своя команда для создания новых файлов.
  37. Создание архива, имя которого содержит дату и время.
  38. Циклы и условия
  39. Часто встречающиеся ошибки при написании командных файлов.
  40. Использование командных файлов в сценариях регистрации пользователей .
  41. Узнайте больше о Huawei

Что такое ttl и зачем его менять

Любому пакету передаваемому с Вашего устройства, подключенного к сети, присваивается параметр время жизни пакета, который называют «TTL» (Time To Live). По умолчанию у каждого устройства этот параметр имеет свое значение. У ПК это значение по умолчанию равняется 128, а мобильные гаджеты имеют TTL = 64.

Так оператор понимает с какого устройства передают пакеты и пытается пресечь нарушение. Кроме того проходя через маршрутизатор значение TTL уменьшается на единицу. Это позволяет оператору понять масштабы поднятой мной сети 😀

Так ОпСоС понимает что интернет пользуют не по назначению в телефоне, а раздают на несколько устройств. Идет потеря «кровных» ОпСоСа, далее высылается СМС о стоимости раздачи за сутки или сразу снимаются деньги со счета.

Модем я буду вставлять в роутер и шарить интернет на весь дом. В сети будут компьютер, телевизор, мобильные устройства и гаджеты умного дома. Каждый со своим временем жизни пакета, а значит без фиксации TTL не обойтись.

Выключение компьютеров по списку, созданному на основе сетевого окружения.

Предыдущий пример наводит на мысль, что можно было бы, например, создать пакетный файл для быстрого выключения всех компьютеров в локальной сети. Выключение производится утилитой стандартной утилитой Shutdown.exe (описание в разделе со списком команд CMD Windows – команда Shutdown ).

Как и в предыдущем примере,
сначала создается файл со списком компьютеров на основе сетевого окружения, а затем
выполняется их поочередное выключение, при условии, что выключаемым компьютером не является ”свой”, на котором выполняется данный командный файл. Содержимое файла:

Выполнение каких либо действий в заданный интервал времени.

Речь пойдет не о запуске командного файла в определенное время, а
о выполнении какой-то его части только в определенный интервал времени,
например, с 10:00 до 12:00. Решения данной задачи потребует сравнения
текущего времени с указанным промежутком.

Для примера, создадим командный
файл, выполняющий запуск стандартного калькулятора Windows , только в том
случае, если он выполняется в интервале времени от 10:00 до 12:00. Необходимо
получить текущее время и выполнить проверку того, что оно не больше 12:00 и
не меньше 10:00 .Команда IF позволяет выполнить сравнение строк
при использовании формата:

IF /I строка1 оператор_сравнения строка2 команда

где оператор_сравнения принимает следующие значения:

EQU – равно

NEQ – не равно

LSS – меньше

LEQ – меньше или равно

GTR – больше

GEQ – больше или равно

а ключ /I, если он указан, задает сравнение текстовых строк без учета
регистра. Этот обычно используется для сравнения текстовых строк в
форме строка1==строка2. Сравнения проводятся по общему типу данных,
так что если строки 1 и 2 содержат только цифры, то обе строки преобразуются в
числа, после чего выполняется их сравнение.


REM Время меньше 12:00 – перейти на анализ второго условия, иначе – выход

if %time:~0,2% lss 12 goto tst2

exit

:tst2

Rem Время больше 10:00 – перейти к выполнению, меньше – завершить командный файл выполнив exit

if %time:~0,2% gtr 10 goto excalc

exit

:excalc

calc.exe

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

Выполнение команд по расписанию.

В операционных системах WINDOWS XP и старше существует утилита командной
строки AT.EXE, позволяющая управлять задачами для
планировщика заданий Windows, и таким образом, выполнить команду или
пакетный файл в указанное время на локальном или удаленном компьютере.

В операционных системах Windows 7 и старше, утилита at.exe присутствует, но признана устаревшей и нерекомендуемой к использованию в будущем.
Вместо нее рекомендуется использовать schtasks.exe, которая обладает большими возможностями, но сложнее в использовании.

Примеры использования современной утилиты имеются в разделе со списком команд, а на данной странице, все же воспользуемся простой классической AT.
Команда AT предназначена для запуска команд и программ в указанное время
по определенным дням.

Примеры команды AT [\имя_компьютера] [ [код] [/DELETE] | /DELETE [/YES]] AT [\имя_компьютера] время [/INTERACTIVE] [ /EVERY:день[,…] | /NEXT:день[,…]] “команда”

\имя_компьютера – имя удаленного компьютера. Если этот параметр
опущен, задача относится к локальному компьютеру. код – порядковый номер запланированной задачи.
Указывается если нужно отменить уже запланированную задачу с помощью
ключа /delete. /delete – отменить запланированную задачу.

Если код задачи опущен,
отменяются все задачи, запланированные для указанного
компьютера./yes – не будет запроса на подтверждение при отмене всех
запланированных задач.время – Время запуска команды./interactive – интерактивный режим, разрешение взаимодействия
задачи с пользователем.

Задачи, запущенные без этого ключа невидимы для
пользователя компьютера./every:день[,…] Запуск задачи осуществляется по указанным дням недели или
месяца. Если дата опущена, используется текущий деньмесяца./next:день[,…

Примеры использования:

Дисклеймер

Мне 12 и я сам в этой теме плохо шарю, т.к. инфы в инете мало. Пж, без хейта.

Задержки в командных файлах

Когда-то, еще в DOS, для организации ожидания в командном файле использовалась команда SLEEP, но затем она почему-то перекочевала из стандартного установочного набора
Windows в дополнительный Resource Kit. Можно просто скопировать его оттуда в каталог system32
и использовать в ваших командных файлах.

:
SLEEP N     – где N – количество секунд для задержки.

    Если же Resource Kit нет под рукой, можно воспользоваться ранее рассмотренной
командой CHOISE без вывода текста и с автоматическим формированием ответа через
nn секунд (1-99):

Запуск bat-файлов от имени администратора и по расписанию, скрытый запуск bat

Теперь вы знаете как создавать батники и имеете некое общее представление о языке интерпретатора CMD. Это были основы, теперь пришла пора познакомиться с некоторыми полезными особенностями работы с bat-файлами. Известно, что для выполнения некоторых действий программам нужны права администратора.

Кроме того, можно сделать так, что конкретный батник будет запускаться с повышенными привилегиями всегда. Для этого необходимо создать на такой скрипт обычный ярлык, открыть его свойства, нажать кнопку «Дополнительно» и отметить в открывшемся окошке галочкой пункт «Запуск от имени администратора».

Скрипты, как и все приложения, можно запускать по расписанию. Команда timeout /t здесь не совсем уместна, для отложенного запуска лучше всего использовать встроенный «Планировщик задач» Windows. Здесь всё просто. Открываем командой taskschd.

И напоследок ещё один интересный момент. Когда вы запускаете bat-файл, на экране появляется, пусть даже на какую-то долю секунды, окно командной строки. А нельзя ли сделать так, чтобы скрипт выполнялся в скрытом режиме? Можно, причём несколькими способами.

Самый простой заключается в следующем. Создаём на bat-файл ярлык, открываем его свойства и в меню «Окно» выбираем «Свёрнутое в значок». После этого единственным видимым признаком запуска скрипта будет появление значка CMD на панели задач, окон же при этом открываться не будет.

Если вы желаете полностью скрыть выполнение скрипта, можете воспользоваться «костылем» – скриптом VВS, который будет запускать ваш батник в скрытом режиме. Текст скрипта приведен ниже, сохраните его в файл hidden.vbs, предварительно заменив путь во второй строчке кода D:/sсript.bat путём к вашему батнику.

Изменение даты и времени файлов или папок.

В Windows, к сожалению, не существует стандартного консольного средства для изменения даты и времени создания, доступа и модификации файлов и папок. Кто имел дело с Unix/Linux знает, что в этих операционных системах имеется простая и удобная утилита
touch с помощью которой можно изменить время последнего доступа или время модификации файла на текущее значение или на значение времени,
заданное в качестве аргумента командной строки.

Не секрет, что командные оболочки Unix/Linux значительно превосходит по своим возможностям командную строку Windows, поэтому, вполне понятно появление пакета UNIX Shell and Utilities для Windows NT и старше. Этот пакет представляет собой Windows-версии наиболее популярных утилит из среды Unix/Linux , которые могут выполняться как консольные команды в среде оболочки пользователя (в среде модуля sh.exe, входящего в пакет) или как исполняемые файлы в командной строке Windows.

Использование переменных в командных файлах.

При работе с командными файлами, очень важное значение имеет такой инструмент как переменные окружения (environments) – переменные, значения которых определяют среду, в которой выполняются команда или пакетный файл. Часто их называют
переменными среды.

Значения, принимаемые этими переменными формируются при
загрузке Windows, регистрации пользователя в системе, старте или завершении
некоторых приложений, и, кроме того, могут быть заданы с помощью специальной
команды
SET

SET переменная=строка

переменная – имя переменной среды. строка – строка символов, присваиваемая указанной
переменной.

Например, командная строка SET myname=Vasyaсоздает переменную myname, принимающую значение Vasya.

Как создать файл с расширением bat

Итак, как создать bat-файл в Windows 7/10? Очень просто. Для этого понадобится любой текстовый редактор и знание основ командной строки. Можно использовать Блокнот, а ещё лучше Notepad , так как последний имеет подсветку синтаксиса. Создайте в редакторе новый файл, в меню «Файл» выберите «Сохранить как», дайте будущему скрипту имя, а в выпадающем списке «Тип файла» выберите «Batch file (*bat; *cmd; *nt)».

Если для создания bat-файла захотите использовать Блокнот, расширение нужно присвоить вручную, а в списке «Тип файла» выбрать «Все файлы».

Как видите, создать файл с расширением bat не составляет сложности, есть тут, однако, свои тонкости. В командных файлах нельзя использовать перенос строк, кодировка bat-файла должна быть выставлена UTF-8, если в теле скрипта используется кириллица, кодировку нужно изменить, вставив в положенном месте команду chcp 1251.

Метки

Создадите файл start.bat в той же папке, где и test.bat, напишите в нем:

test.bat 2 2

Мы запустили батник, НО подали в него аргументы 2 и 2. Чтобы к ним обратиться, нужно написать %n, где “n” – номер аргумента, считая от одного(не от нуля), вот код, считающий сумму первого и второго аргумента (их может быть от нуля до 9-и):

Команда “rem”

не эта :)
не эта 🙂

не делает ничего и служит комментарием к коду

rem Это самая лучшая прога в мире!!!!!

Определение доступности ip-адреса

Для проверки доступности сетевого узла чаще всего используется упоминаемая выше стандартная утилита ping.exe. Утилита выполняет отправку ICMP-пакета на проверяемый узел (эхо-запрос) и ожидает ответный пакет (эхо-ответ). К сожалению, результат проверки доступности узла не в полной мере коррелируется со значением переменной ERRORLEVEL и может быть получен только из данных стандартного вывода ping.

В разных версия ОС Windows, утилита ping.exe может устанавливать нулевое значение ERRORLEVEL даже при недоступности узла, но при наличии в командной строке верных параметров командной строки. Иными словами, в некоторых случаях, требуемый сценарием результат выполнения определенной команды трудно, или вообще нельзя определить по значению переменной ERRORLEVEL, и приходится анализировать более достоверные признаки успешного или неуспешного выполнения команды, например, наличие определенного текста в ее выводимых сообщениях.

Если внимательно посмотреть на сообщения программы ping.exe при опросе доступного и недоступного узла, то можно заметить, что они значительно отличаются :ping 456.0.0.1 – ping на несуществующий адрес

Ответ на такую команду может отличаться от конкретной версии утилиты, и
может быть приблизительно таким


При проверке связи не удалось обнаружить узел 456.0.0.1. Проверьте имя узла и повторите попытку.

Определение текущей версии windows.

Так же, как и в предыдущем примере, для определения версии операционной системы в процессе выполнения командного файла, можно воспользоваться поиском определенных фрагментов текста в результатах выполнения команд, отображающих сведения о системе. Например, во всех операционных системах семейства Windows ( и даже в DOS ) существует специальная команда VER, предназначенная для отображения сведений о версии ОС. В результате выполнения команды, например, в среде Windows XP, отображается текст:

Microsoft Windows XP [Версия 5.1.2600]

В среде Windows 7, текст отличается:

Microsoft Windows [Version 6.1.7600]

В среде Windows 10:

Microsoft Windows [Version 10.0.14393]

Таким образом, результат выполнения команды VER в среде разных версий Windows,
всегда содержит определенный текст, характерный только для данной ОС, и задача определения версии решается довольно просто:

Остановка и запуск системных служб.

Для остановки и запуска служб из
командной строки, в любой версии Windows, можно воспользоваться командой NET.EXE

NET.EXE STOP < имя службы >

NET.EXE START < имя службы >

В качестве параметра команды можно использование как короткое, так и полное имя службы
(“Dnscache” – короткое, “DNS-клиент” – полное имя службы).
Имя службы, содержащее пробелы заключается в двойные кавычки.
Пример перезапуска службы “DNS-клиент”

net stop “DNS-клиент”

net start “DNS-клиент”


То же, с использованием короткого имени:

net stop Dnscache

net start Dnscache

Передача параметров командному файлу.

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

Перекодировка текстовых файлов.

В рассматриваемом примере нужно преобразовать исходный текстовый файл в DOS-кодировке
в новый текстовый файл в Windows-кодировке.
В качестве механизма перекодировки используется смена
кодовой страницы командой
CHCP

и построчная выдача содержимого исходного файла командой

Переменные

Создать переменную можно с помощью команды set, синтаксис объявления следующий: P.S. это не совсем переменные, это скорее макросы (для тех к кто не знает C/C это именованный кусочек кода, имя которого заменяется на этот кусочек кода)

set a=Hello world

Если после “set” добавить флаг “/a” то:

  1. Переменной задастся значение выражения, а не его текст, например:

    set a=2 2
    > 2 2
    set /a a=2 2
    > 4
  2. Переменной можно присвоить ТОЛЬКО числовое значение

Чтобы обратиться к переменной, нужно окружить ее символами “%” (так %name%), пример кода:

Переходим к практике

Обращаю внимание! Сначала выполняется смена IMEI, затем фиксация TTL.

  • Ждем загрузки. Открываем терминал из архива.
  1. Выбираем порт FC-PC UI Interface. Если дрова не ставили или не ввели в дебаг мод порты не появятся.
  2. Ставим потру статус открыт. Окно терминала начнет наполнятся.
  3. Пишем команду на смену IMEI -> AT^CIMEI=»IMEI без пробелов»
  4. Жмякаем отправить. В ответ ждем «OK».
  5. Пишем команду на фиксацию IMEI -> AT^INFORBU
  6. Жмякаем отправить. В ответ ждем «OK».
  7. Закрываем терминал. Перезагружаем подем.
  • Распаковываем архив под названием «TTL». Ищем в нем файл fix_ttl.bat. Открываем блокнотом. В нем необходимо будет указать IP адрес модема иначе скрипт не отработает.

У меня стоит 192.168.10.1. Порт не трогайте, там 5555. IP адрес копируем из вкладки веб-морды. Кстати рекомендую его сразу изменить с дефолтного в настройках сети модема. Я при подключении модема к роутеру словил конфликт IP, так как оба устройства имели стандартный адрес 192.168.1.1.

Поздравляю! Нехитрыми манипуляциями модем превратился в смартфон с IMEI и фиксированным TTL и стал пригоден к использованию с любыми симкартами.

Переходы и метки.

В командных файлах можно использовать команды условного перехода,
меняющие логику их работы в зависимости от возникновения определенных условий.
В качестве иллюстрации создадим командный
файл, целью которого будет присвоение заранее определенной буквы для
съемных носителей.

Условия таковы – есть 2 съемных диска, один из которых должен быть виден в проводнике как диск X: а второй – как диск Y: независимо от того, в какой
порт USB они подключены и какие буквы присвоены им операционной системой.
Для примера, будем считать, что реальные диски могут быть подключены как F: или G:

Flashd1.let – на первом диске

Flashd2.let – на втором

Таким образом, задача командного файла заключается в том, чтобы проверить
наличие на сменных дисках F: и G: файлов Flashd1.let
или Flashd2.let и, в зависимости от того, какой из них присутствует,
присвоить диску букву X: или Y:

Для поиска файла на диске воспользуемся командой IF EXIST:

IF EXIST имя_файла команда

В качестве команды, которая будет выполнена при удовлетворении условия используем SUBST, которая предназначена для сопоставления каталога и виртуального диска.

SUBST X: C: – – создать виртуальный диск
X:, содержимым которого будет корневой каталог диска C:

   
Для решения поставленной задачи, создаем командный файл, например с именем setletter.bat, следующего содержания:

Подводим интернет в частный дом

Подбор компонентов привел к покупке следующей связки:

  • Wi-Fi роутер Xiaomi 3G.
  • 4G модем Huawei 3372h.
  • 3G/4G антенна для усиления сигнала.
  • Пигтейлы для подключения антенны к USB модему.

Роутер приобрел б/y вариант за 1500 рублей и прошил на Padavan. Гнездо USB в этом маршрутизаторе имеется, но со стоковой Китайской прошивкой оно не работает. Вариант один только шить. Модем Huawei 3372h мне достался от «Мегафона», залоченный под симку оператора.

Для нормальной жизни его необходимо будет прошить прошивкой Hilink. Тогда модем обретает вторую жизнь. Работает с любыми операторами, поддерживает смену IMEI, TTL, что мне будет необходимо для того, чтобы ставить в него сим-карту, которая для работы с модемом не предназначена.

Интернет в частный дом усложняется тем, что операторы видят такие махинации и если у Вас не подключен специальный модемный тариф доступа в интернет не будет. Еще один плюс — это работа с веб-интерфейсом. Мне с ним намного удобнее, да и к роутеру модем подключается в «пару кликов».

Подключаем huawei 3372h к роутеру для раздачи интернета

Заходим в веб-морду Padavan. Открываем пункт приложение USB -> вкладку Модем. Активируем ползунок «Включить USB-модем?».

Ставим тип модема — NDIS: LTE and other и сохраняем.

Подключаем модем в USB порт и проверяем работу на вкладке карта сети. По IP адресу шлюза WAN можно выполнить вход в веб-интерфейс модема. Не забудьте его сменить если он совпадает с IP роутера, чтобы не словить конфликт IP адресов.

Статья дополняется и обновляется. Если у вас новые данные о том как подключить интернет в частный дом, пишите в комментариях, обсудим.

Подробнее о переменных

Если добавить флаг “/p”, то выводиться значение после символа “=”, а переменной задается введенное значение(запустите этот код:)

Поиск в локальной сети включенных компьютеров.

В данном примере речь идет о создании командного файла, позволяющего “собрать” список IP-адресов узлов локальной сети, включенных на данный момент времени. Ничего принципиально нового в плане создания командных файлов здесь нет, но тем не менее, задача поиска включенных узлов в локальной сети встречается довольно часто, и решить ее описанными выше способами, с использованием ping.exe и net view удается далеко не всегда, поскольку в современных версиях операционных систем семейства Windows настройки брандмауэров по умолчанию, задают довольно жесткие правила, блокирующие сетевые соединения извне, и ответы на эхо-запрос.

Прием, используемый для получения списка включенных сетевых устройств при решении данной задачи остается прежним – необходимо определить характерные отличия в выходных сообщениях стандартных сетевых утилит в случае, когда устройство выключено, и когда – защищено параноидальными настройками брандмауэра.

При любой передаче пакетов IP-протокола с данного компьютера на IP-адрес другого сетевого устройства в локальной сети, программные средства сетевых протоколов выполняют процедуру определения физического адреса сетевого адаптера получателя ( MAC-адрес получателя).

Всем сетевым устройствам отправляется специальный широковещательный запрос ( запрос который будет принят всеми компьютерами данной подсети), означающий “чей MAC – адрес соответствует такому-то IP-адресу”. Если какое-либо сетевое устройство опознало свой собственный IP-адрес, оно отправит ARP-ответ, содержащий соответствующий MAC-адрес, который будет сохранен в специальной таблице соответствия адресов IP и MAC, хранящейся в оперативной памяти компьютера, отправившего ARP-запрос.

Запись информации в данную таблицу выполняется только при необходимости передачи любых данных по протоколу IP, что можно инициировать, например, пингованием опрашиваемого устройства. Даже если настройками брандмауэра полностью закрыты все соединения извне и блокируется протокол ICMP ( устройство не «пингуется» ) , в буферной памяти сервиса
ARP будет присутствовать запись соответствия IP и MAC, если устройство было подключено к локальной сети и участвовало в процедуре разрешения адреса .

Для просмотра содержимого ARP-кэш можно воспользоваться командой

arp -a – отобразить все записи в таблице ARP

Пример отображения таблицы ARP:

Интерфейс: 192.168.0.29 — 0xa

адрес в Интернете Физический адрес Тип

192.168.0.1 00-1e-13-d6-80-00 динамический

192.168.0.3 60-eb-69-08-18-d2 динамический

. . .

Интерфейс: 192.168.234.1 — 0xf

адрес в Интернете Физический адрес Тип

192.168.234.255 ff-ff-ff-ff-ff-ff статический

224.0.0.22 01-00-5e-00-00-16 статический

224.0.0.252 01-00-5e-00-00-fc статический

239.255.255.250 01-00-5e-7f-ff-fa статический

Как видно из приведенной таблицы, например IP – адресу 192.168.0.1 соответствует физический адрес сетевого адаптера, равный 00-1e-13-d6-80-00 . Если же сетевой адаптер с данным адресом будет недоступен, то такой записи в таблице не будет.

Для понимания алгоритма опроса сети необходимо учесть следующее:

Разрешение адресов ARP используется только при передаче данных по IP-протоколу в пределах сегмента локальной сети, задаваемого маской. Так, например, для примера с IP адресом 192.168.0.1 и маски 255.255.255.0 это будет диапазон IP от 192.168.0.1 до 192.168.0.254.

Поиск компьютеров с запущенным приложением

В операционных системах Windows XP и старше имеется стандартная утилита для получения списка процессов, выполняющихся в системе tasklist.exe. Она обладает очень неплохими возможностями и может использоваться для поиска выполняющихся приложений как на локальном, так и удаленном компьютере.

Также, можно воспользоваться вспомогательной утилитой PSList.exe из пакета PSTools от Microsoft Sysinternals. Обе утилиты можно использовать для поиска
приложений, выполняющихся на локальном или удаленном компьютере, но PSlist имеет более простой функционал, менее известна среди компьютерных специалистов и выбрана в качестве средства решения поставленной задачи.

Поиск компьютеров с запущенным приложением по списку

В предыдущем примере использовался прямой перебор IP-адресов компьютеров в
локальной сети, что не всегда эффективно, поскольку в процедуру опроса могут быть
вовлечены и выключенные компьютеры. Решим задачу другим способом – создадим текстовый
файл со списком компьютеров и опросим их по этому списку.

Список можно получить из сетевого окружения с использованием команды:
net.exe view > comps.txt
После выполнения такой команды файл
comps.txt
будет содержать список
следующего вида:

Имя сервера                 Заметки< 2 пустых строки >——-\AB1\AB2\ALEX\BUHCOMP\PC2\SA\SERVERКоманда выполнена успешно.


   
Обрабатывать содержимое этого текстового файла будем с помощью команды
FOR
с ключом /F:

FOR /F [“ключи”] %переменная IN (имя файла) DO команда [параметры]

Данная команда позволяет получить доступ к строкам в текстовом файле с использованием ключей:skip=n                 – пропустить n строк от начала файла (в нашем примере – 4 строки)eol=< символ >  – не использовать строки, начинающиеся с заданного символа.
(в нашем случае – пропустить последнюю строку, начинающуюся с кириллического символа “К” – “Команда выполнена успешно”tokens=n             – брать для обработки n-е слово в строке (в нашем случае – 1-е слово)

Окончательный вид команды:

Пример создания архива каталога “мои документы”.

   
Этот командный файл создает архивы содержимого папки
“Мои Документы” пользователей Win2K/XP/7-10, размещая их в каталогиC:ARHIVМои документыИмя пользователяДатавремя

Примеры использования утилиты touch.exe в командной строке windows:

touch C:foldermyfile.txt – изменить время доступа и модификации файла C:foldermyfile.txt на текущее. Если файл не существует, он будет создан с нулевой длиной и текущим временем создания, модификации и доступа.touch C:folder – изменить время доступа и модификации папки C:folder на текущее.touch -f C:ntldr C:folder – изменить время доступа и модификации папки C:folder на время, установленное для файла C:ntldrtouch -t 199803080102.00 C:folder – установить для существующей папки “C:folder” значение даты и времени модификации – 1998г.

, 8 марта, 1 час : 2 минуты :00 секундtouch -t 1112.30 C:folder – установить для существующей папки “C:folder” значение даты и времени модификации – текущая дата, 11 час : 12 минут :30 секунд touch -a -t 2222.20 C:folder – изменить только время доступа, время модификации не изменяется.

Примеры командных файлов.

Использование утилит командной строки и командных файлов нередко позволяют
решить многие проблемы связанные с повседневной эксплуатацией компьютерной
техники. Большинство системных администраторов и грамотных пользователей
продолжают ими пользоваться, несмотря на то, что в Windows проявилось новое,
более мощное и современное средство управления системой – WMI
(Windows Management Instrumentation) и многофункциональная оболочка пользователя Power Shell.

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

Ниже приведены простые
примеры с комментариями, которые демонстрируют некоторые возможности и
способы применения .cmd и .bat

Присвоение съемному диску одной и той же буквы.

Задача заключается в том, чтобы съемный USB диск (флэш диск) был доступен
всегда под одной и той же буквой, независимо от того, на каком компьютере он
используется и каким образом он был подключен. Для ее решения воспользуемся уже упоминаемой выше командой SUBST, но реализуем присвоение новой буквы диску с
помощью подстановочного значения переменной %0, создаваемой
системой при каждом запуске командного файла.

Выберем для съемного диска желаемую букву, например – X.

Некоторые из переменных окружения, в том числе и переменная %0,
принимающая значение пути и имени выполняющегося командного файла, позволяют
при определенной модификации с использованием специального признака –
символа ” ~ “, получить ее частичное значение (расширение переменной).

Работа с дисками, файлами и каталогами.

Задача – определить буквы дисков, присутствующих в системе и записать результат в файл с
именем tstdsk.txt текущего каталога. Можно воспользоваться выполнением команды IF EXIST в цикле FOR для набора из букв латинского алфавита, т.е
для каждой буквы диска проверить наличие корневого каталога командой

IF EXIST буква диска:

Сначала создаем пустой файл:

copy nul tstdsk.txt

Это действие необязательно, если файла не существует, но в противном случае, результаты будут дописываться в конец файла, и если в нем уже был список дисков от предыдущего исполнения командного файла, то он удвоится. Команда copy nul tstdsk.txt для существующего файла установит нулевой размер данных, т.е. сделает его пустым.

Окончательно, командный файл будет выглядеть следующим образом:

Разлочка huawei 3372h. смена imei, ttl

Подготовка модема. В моем случае тариф МТС «Безлимитище» с неограниченным трафиком. У Вас может быть любой другой. Вставив в модем сим-карту не предназначенную для работы с модемом интернета не ждите. Будем доказывать ОпСоСу (оператор сотовой связи) что модем — это и есть телефон.

Для этого поставим модему IMEI своего телефона и TTL. У меня после прошивки на Hilink интернет так и не появился, до устранения указанных косяков. Тарифы, которые поддерживают раздачу интернета (обычно с лимитным трафиком) будут работать. Но кому они нужны? Будем делать сразу на совесть.

Что такое ttl и зачем его менять

Любому пакету передаваемому с Вашего устройства, подключенного к сети, присваивается параметр время жизни пакета, который называют «TTL» (Time To Live). По умолчанию у каждого устройства этот параметр имеет свое значение. У ПК это значение по умолчанию равняется 128, а мобильные гаджеты имеют TTL = 64.

Так оператор понимает с какого устройства передают пакеты и пытается пресечь нарушение. Кроме того проходя через маршрутизатор значение TTL уменьшается на единицу. Это позволяет оператору понять масштабы поднятой мной сети 😀

Так ОпСоС понимает что интернет пользуют не по назначению в телефоне, а раздают на несколько устройств. Идет потеря «кровных» ОпСоСа, далее высылается СМС о стоимости раздачи за сутки или сразу снимаются деньги со счета.

Модем я буду вставлять в роутер и шарить интернет на весь дом. В сети будут компьютер, телевизор, мобильные устройства и гаджеты умного дома. Каждый со своим временем жизни пакета, а значит без фиксации TTL не обойтись.

Переходим к практике

Обращаю внимание! Сначала выполняется смена IMEI, затем фиксация TTL.

веб интерфейс Huawei 3372 debug mode

  • Ждем загрузки. Открываем терминал из архива.

смена imei huawei 3372

  1. Выбираем порт FC-PC UI Interface. Если дрова не ставили или не ввели в дебаг мод порты не появятся.
  2. Ставим потру статус открыт. Окно терминала начнет наполнятся.
  3. Пишем команду на смену IMEI -> AT^CIMEI=»IMEI без пробелов»
  4. Жмякаем отправить. В ответ ждем «OK».
  5. Пишем команду на фиксацию IMEI -> AT^INFORBU
  6. Жмякаем отправить. В ответ ждем «OK».
  7. Закрываем терминал. Перезагружаем подем.
  • Распаковываем архив под названием «TTL». Ищем в нем файл fix_ttl.bat. Открываем блокнотом. В нем необходимо будет указать IP адрес модема иначе скрипт не отработает.

скрипт фиксации ttl huawei 3372

У меня стоит 192.168.10.1. Порт не трогайте, там 5555. IP адрес копируем из вкладки веб-морды. Кстати рекомендую его сразу изменить с дефолтного в настройках сети модема. Я при подключении модема к роутеру словил конфликт IP, так как оба устройства имели стандартный адрес 192.168.1.1. После корректировки батника открываем его двойным кликом. Убеждаемся что подключение прошло успешно (должно быть connected). Выбираем 1 -> ENTER. Далее скрипт самостоятельно перезагрузит модем командой adp reboot. TTL = 64 установлен.

терминал команды на фиксацию ttl usb модема

Поздравляю! Нехитрыми манипуляциями модем превратился в смартфон с IMEI и фиксированным TTL и стал пригоден к использованию с любыми симкартами.

Подключаем huawei 3372h к роутеру для раздачи интернета

Заходим в веб-морду Padavan. Открываем пункт приложение USB -> вкладку Модем. Активируем ползунок «Включить USB-модем?».

Ставим тип модема — NDIS: LTE and other и сохраняем.

Padavan активация работы интернета через usb модем

Подключаем модем в USB порт и проверяем работу на вкладке карта сети. По IP адресу шлюза WAN можно выполнить вход в веб-интерфейс модема. Не забудьте его сменить если он совпадает с IP роутера, чтобы не словить конфликт IP адресов.

Padavan проверка работы usb модема на вкладке карта сети

Статья дополняется и обновляется. Если у вас новые данные о том как подключить интернет в частный дом, пишите в комментариях, обсудим.

Своя команда для создания новых файлов.

   
В составе операционной системы Windows нет специальной команды для создания нового файла, но без нее можно легко обойтись несколькими способами:

Копирование с клавиатуры в файл

COPY CON myfile.txt

При выполнении этой команды данные с клавиатуры (стандартное устройство CON – консоль) будут заноситься в файл myfile.txt. Нажатие клавиши F6 или комбинации CTRL-Z завершит вывод.

Перенаправление вывода

Создание архива, имя которого содержит дату и время.

Решим следующую задачу – нужно создать архив файлов, находящихся в каталоге
C:Program FilesFAR. Имя архивного файла должно состоять из текущего времени
(часы.минуты.секунды – ЧЧ.ММ.СС.rar), и помещен он должен в новый каталог, имя которого должно состоять из текущей даты
(день.месяц.год – ДД.ММ.ГГГГ). Для архивирования будем использовать архиватор RAR.
Формат запуска для создания архива:

RAR a -r < путь и имя архива > < Путь и имя архивируемых данных >

a – команда создания архива.-r – ключ, определяющий архивирование подкаталогов (т.к. в исходной папке есть подкаталоги).

Таким образом, для решения задачи нужно правильно создать имена и пути для RAR. Для чего
воспользуемся следующими исходными данными:

Циклы и условия

Цикл можно создать с помощью команды “for”, синтаксис следующий:

for %%i in (a b c) do (
		cmd
)

или такой

for %%i in (a b c) do cmd

(a b c) это список (не обязательно из 3-х элементов) и переменная %%i (нужно ставить символ после процентов, а не между) по очереди проходит по значениям в списке

Если добавить флаг “/l”, то переменная в первый раз будет равна “a”. К ней каждый раз будет прибавляться “b”, пока она не станет больше “c”(тут размер ДОЛЖЕН равняться 3)

запустите этот код, тут все наглядно

Часто встречающиеся ошибки при написании командных файлов.

  • Командный файл вручную выполняется успешно, но запущенный с помощью планировщика не работает.

Обычно, это вызвано тем, что вы не учитываете тот факт, что на момент выполнения вашего командного файла переменные среды могут быть совсем другими, чем на момент его написания и запуска из командной строки. Например, в командном файле используется запуск приложения myprog.exe, находящегося в каталоге SCRIPTS на диске D: . Если в командном файле используется имя исполняемого модуля без полного пути

MYPROG.EXE и если каталог D:SCRIPTS не прописан в путях поиска (переменная PATH ) то модуль MYPROG.EXE может быть найден и выполнен только если текущим каталогом является D:SCRIPTS. Но если вы укажете полный путь к myprog.exe:D:SCRIPTSmyprog.exeто программа будет найдена и выполнена в любом случае.

Кроме того, нередко программа, указанная в командном файле использует для поиска своих компонент (dll, ini и т.п. ) собственный каталог. Но на момент ее выполнения текущим каталогом может быть любой (чаще всего – системный каталог Windows). Естественно, компоненты не находятся и программа не выполняется.

Rem Сменим текущий дискD:Rem перейдем в каталог SCRIPTSCD D:SCRIPTSmyprog.exe

Также для переходов по каталогам можно воспользоваться командами pushd и popd, описание и примеры использования которых имеются в разделе сайта со списком команд Windows.

Неправильно отображаются русские имена файлов, служб и т.п.

Причина в том, что при создании командных файлов вы
использовали текстовый редактор, в котором русские символы представлены
не в DOS-кодировке. Если в приведенном выше примере перезапуска службы “DNS-клиент”
вы используете неверную кодировку, то русская часть имени службы не будет опознана
из-за неверной кодировки и будет выдано сообщение, что указанная служба не
установлена.

Чтобы избежать проблем с русскими символами в командных файлах,
используйте редактор с поддержкой DOS-кодировки, например, встроенный редактор
файлового менеджера Far Manager. Переключение между кодировками в редакторе осуществляется нажатием F8 .

Командный файл выполняется на одном компьютере успешно, но на другом – не работает.

Обычно это вызвано применением в командных файлах абсолютных значений для дисков, файлов и каталогов вместо переменных среды окружения. Вместо C:WINDOWS правильнее использовать %SYSTEMROOT%, потому,
что на другом компьютере система может быть установлена в другой каталог или на другой диск.

    Строки с переменными, принимающими значения имен файлов и каталогов лучше
заключать в кавычки. Командная строка

DIR %ProgramFiles%

не выдаст вам содержимого каталога C:Program Files , поскольку из-за наличия пробела будет
интерпретирована как

DIR C:Program

Командная строкаDIR “%ProgramFiles%”выполнится верно.

    Старайтесь использовать команды Setlocal и Endlocal, чтобы не оставлять мусор
из переменных, созданных или модифицированных командным файлом.

Использование командных файлов в сценариях регистрации
пользователей .

   
Командные файлы
удобно использовать для выполнения каких-либо
действий при регистрации пользователя в
домене. Делается это с помощью вкладки
Profile

свойств пользователя домена.

Сами командные файлы должны
находиться в сетевой папке
Netlogon
(WINDOWSSYSVOL DOMAINSCRIPTS) контроллера домена.

Однако наиболее распространенной областью применения командных файлов является их
использование в сценариях групповых политик, позволяющих
централизованно выполнять административные
действия по управлению большим количеством компьютеров и пользователей в
домене, что значительно облегчает работу системных администраторов
крупных компьютерных сетей.

Дополнительные материалы по командной строке Windows:

Раздел со списком команд
CMD Windows. Имена большинства команд представляют собой ссылку на
страницы с их описанием и примерами.

Настройка окна командной строки
Windows. Малоизвестные возможности по изменению свойств консоли Windows.

Работа с сетью в
командной строке Windows – Описание и примеры использования
утилит командной строки для работы с сетью.

Запуск командных файлов от имени администратора без запроса UAC – использование планировщика заданий для запуска приложений
от имени Администратора без запроса системы контроля учетных записей UAC.

Основные приемы, используемые при работе в командной строке Windows.

Если вы желаете поделиться ссылкой на эту страницу в своей социальной сети, пользуйтесь кнопкой “Поделиться”

В начало страницы         |        
На главную страницу сайта

Оцените статью
Huawei Devices
Добавить комментарий