Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Другие темы раздела
CMD/BAT Предложения по совершенствованию раздела и закреплению в "ВАЖНЫЕ" новых тем http://www.cyberforum.ru/cmd-bat/thread671223.html
Есть предложение создать несколько тем "закрепленных наверху раздела" с такими названиями: 1) Полный перечень всех встроенных команд 1.1. Описание функционала. 1.2. Список ключей и их...
CMD/BAT Что за вирус?
У себя на компьютере обнаружил bat вирус... Подскажите что он делает Код удален.
CMD/BAT Копирование на флешку папки, имя которой меняется
Имеется папка на рабочем столе "Данные (14.10.2012)" Завтра она будет "Данные (15.10.2012)" итд. Как создать сценарий, который будет копировать ее содержимое в корневище флэшки (тоесть не саму папку...
CMD/BAT Получить список пользователей из AD active directory групп имеется около 50 нужно получить список групп и пользователей в них в CMD net group manager net group Непонятно кто ..итд И так 50 групп, как минимум - неудобно) http://www.cyberforum.ru/cmd-bat/thread670471.html
CMD/BAT Скрипт в Windows XP работает правильно, а в Windows 7 — неправильно http://www.cyberforum.ru/cmd-bat/thread670084.html
Здравствуйте! Проблема следующая, в Windows XP скрипт отрабатывает правильно: Распаковывает архив, затем переходит в папку где лежит распакованный файл и переименовывает его, дописывая ".txt". Файлы...
Копирование с заменой CMD/BAT
Всем доброе утро. Господа специалисты в этой области, прошу Вас помочь, поскольку в этом практически ничего не понимаю, но знаю что вполне реально. Мне нужно вот такой вот .bat файлик: ...
CMD/BAT Синхронизация содержимого нескольких папок
Здравствуйте. Есть у меня .bat-файл, который выполняет синхронизацию содержимого нескольких папок. Точнее сказать, резервное копирование, а не синхронизацию, т.к. копируются файлы всегда в...
CMD/BAT Считывание информации о компьютере -Название процессора (название и Ghz) -видяхи (название и скоко МБ) -опиративы (тип и скоко GB) -разрядность системы -какая винда. Добавлено через 2 часа 14 минут -Название процессора... http://www.cyberforum.ru/cmd-bat/thread669693.html
CMD/BAT При завершении процесса перезапускать его через 60 секунд http://www.cyberforum.ru/cmd-bat/thread669236.html
Добрый день гуру cmd.)) Помогите пожалуйста сделать так чтоб если процесс завершает работу, то bat файл запускает этот процесс заново через 60 секунд. Я не имею ни малейшего понятия о cmd но по...
CMD/BAT Ошибка при работе с файлами, имена которых содержат пробелы Данный код изменяет размер картинок в текущей папке. Но если в названии картинки есть пробел, то эта картинка игнорируется. Как это можно исправить? @echo off set pict=*.png,*.jpg,*.ico,*.gif... http://www.cyberforum.ru/cmd-bat/thread669136.html
Dragokas
Эксперт WindowsАвтор FAQ
17100 / 7155 / 861
Регистрация: 25.12.2011
Сообщений: 10,954
Записей в блоге: 16
12.11.2012, 09:17  [ТС] 0

Каталог простых примеров решенных задач BAT/CMD, с чего начать (■■■ основная тема ■■■)

12.11.2012, 09:17. Просмотров 316444. Ответов 39
Метки (Все метки)

Ответ

Работа с переменной (урезание части строки, замена):
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Echo Off
:: Кодировка файла 'Кириллица DOS' (866)
Set var=123456789
Echo.
Echo                    Запись      Значение
Echo.
Echo Переменная полностью           %%var%%     %var%
Echo.
Echo Первые три символа         %%var:~0,3%%    %var:~0,3%
Echo Последние три символа          %%var:~-3%% %var:~-3%
Echo Три символа начиная с шестого      %%var:~5,3%%    %var:~5,3%
Echo Без первых трех символов       %%var:~3%%  %var:~3%
Echo Без последних трех символов        %%var:~0,-3%%   %var:~0,-3%
Echo Без первых двух и последних трех   %%var:~2,-3%%   %var:~2,-3%
Echo.
Echo Замена части переменной (45 на abc)    %%var:45=abc%%  %var:45=abc%
Echo Замена части переменной и символов
Echo до нее (23, и все что до этого, на xyz)    %%var:*23=xyz%% %var:*23=xyz%
Echo Удаление части переменной (567)        %%var:567=%%    %var:567=%
Pause>Nul
Присвоение переменной первой строки файла:
Bash
Set /p X=<file.txt
echo %x%
Подсчет длинны переменной

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off 
Setlocal
set st=abcdefghijklmnopqrstuvwxyz
call :var_Count "%st%" count
echo %count%
exit /b
 
:var_count
set var=%~1
if not defined var exit /b
set var=%var:~1%
set /a %2+=1
call :var_count "%var%" %2
exit /b
Более безопасная и быстрая конструкция (умеет работать с кол-вом символом в переменной > 1000)
Bash
1
2
3
4
5
6
7
:var_count %1-in.Text %2.out.Len.of.Text
  set _var=%~1& set _count=0
  :_count_loop
  set _var=%_var:~1%
  set /a _count+=1
  if not defined _var (set %~2=%_count%& exit /b) else (goto :_count_loop)
Exit /B
Еще один вариант конструкции:
Bash
1
2
3
4
5
6
7
8
9
10
11
:var_count
::%1 - текст
::%2 - Переменная для хранения кол-ва символов в тексте
  set "_text=%~1"
  if "%_text%"=="" (set %~2=0& Exit /B)
  set _TCount=
  for /L %%C in (0,1,8184) do if "!_text:~%%C,1!"=="" (goto var_count_ext) else (set _TCount=%%C)
:var_count_ext
  set /A _TCount+=1
  set %~2=%_TCount%
Exit /B
Получить значение переменной окружения, заданной другой переменной

Bash
1
2
3
4
5
6
7
8
9
10
@echo off
set /p param=Введите имя переменной среды:
for /f %%a in ('call echo %%%param%%%') do (
  if "%%a"=="%%%param%%%" (
      echo Переменная не определена
    ) else (
      echo Переменная определена, ее значение равно %%a)
  )
)
pause>nul
Добавлено через 4 минуты
Удаление ярлыков с рабочего стола
(для Win XP и для Win7 обеих локализаций (англ, рус)

Bash
1
2
3
4
5
6
7
8
9
10
11
@echo off
chcp 1251
setlocal
set files=Русс.lnk 1111*.lnk *z.lnk
%homedrive%
if exist "%homedrive%%homepath%\desktop" (set homedesk=desktop) else (set homedesk=Рабочий стол)
if exist "%public%" (set comdesk=%public%\%homedesk%) else (set comdesk=%allusersprofile%\%homedesk%)
chdir "%homedrive%%homepath%\%homedesk%"
for %%a in (%files%) do (echo del /q "%%a"&echo del /q "%comdesk%\%%a" >nul)
endlocal
chcp 866
Добавлено через 2 часа 0 минут
Поместить программу в автозапуск

Bash
set proga=c:\tools\MyNotepad.exe
REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v MyProg /t REG_SZ /d "%proga%" /f
Печать строки справа налево
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@Echo Off
SetLocal enabledelayedexpansion
 
Call :RtoL "Stroka" Rev
Echo %Rev%
pause>nul
Goto :eof
 
:RtoL
Set Cnt=
Call :var_count "%~1" Cnt
set var=%~1
set Cnt-=1
Set %2=
for /L %%C in (%Cnt%,-1,0) do Set %2=!%2!!var:~%%C,1!
Exit /B
 
:var_count
set var=%~1
if not defined var exit /b
set var=%var:~1%
set /a %2+=1
call :var_count "%var%" %2
exit /b


Вернуться к обсуждению:
Каталог простых примеров решенных задач BAT/CMD, с чего начать (■■■ основная тема ■■■)
5
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2012, 09:17
Готовые ответы и решения:

Как задать вопрос на форуме Batch и выделить свой код? (■■■ Кто первый раз в этом разделе ■■■)
Как задать вопрос на форуме Batch и выделить свой код? Важно знать: у нас есть &quot;тема-каталог...

WiLD: Алгоритм работы ■ (основное обсуждение) ■
Обсуждение части проекта: http://www.cyberforum.ru/cmd-bat/thread866656.html Полезные ссылки:...

Lenovo G500 (LA-9632 rev 1.0) не включается
Добрый день. Ноутбук пришел перебитым кабелем з.у. В EC KB9012QF дырка, кз по B+. По B+ в к.з. был...

Lenovo G500 (LA-9632) - Сильно греется хаб
Всем добрый день. Принесли ноут Lenovo G500 мать la-9632 При включении не было изображение....

Batch (CMD/BAT) несколько заданий на CMD/BAT
1.Напишите bat файл на диске с ,который будет искать на всех дисках файлы с расширением...

39
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.