Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)

Модерирует : gyra, Maz

Widok (19-11-2007 12:08): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118

   

KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Командная строка, батники\сценарии (bat, cmd)
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Задачи на bat-файлах 4
 
Полезные ссылки:
· Cmd. Описание от разработчиков
· Урок bat-аники (для начинающих)
· Набор GNU утилит для win32
· Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· cmdow — изменение параметров и видимости дос-окна
· blat — отправка почты из консоли
· Справка по командам в виде Html
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Пример - получение и обработка списка пользователей
 
 
Старая версия первого сообщения

Всего записей: 9734 | Зарегистр. 12-10-2001 | Отправлено: 04:28 24-09-2002 | Исправлено: Elroir, 19:35 11-09-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sqsqsq
 
"set /?" :

Цитата:
 
...
Environment variable substitution has been enhanced as follows:
 
    %PATH:str1=str2%
 
would expand the PATH environment variable, substituting each occurrence
of "str1" in the expanded result with "str2".  "str2" can be the empty
string to effectively delete all occurrences of "str1" from the expanded
output.  "str1" can begin with an asterisk, in which case it will match
everything from the beginning of the expanded output to the first
occurrence of the remaining portion of str1.
...
 
 
и то же самое на русском:

Цитата:
 
...
Подстановка переменной среды может быть расширена следующим
образом:
 
    %PATH:str1=str2%
 
расширит действие переменной среды PATH, заменяя каждое  
вхождение "str1" в расширенном результате на "str2".  "str2"  
может быть пустой строкой для эффективного удаления вхождений
"str1" из расширенного вывода. "str1" может начинаться со
звездочки, и в этом случае это будет соответствовать любому  
началу расширенного вывода до первого вхождения оставшейся  
части "str1".
...
 

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:28 14-05-2007 | Исправлено: Elroir, 19:49 14-05-2007
Maza Faka



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
sqsqsq

Цитата:

Код:
%var:str1=str2%

описания не нашел.

В командной строке выполни set /? там подробно описано.

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 07:37 15-05-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maza Faka
Ты предыдущий пост читал???

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 07:44 15-05-2007
Maza Faka



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Elroir
Да я страницу не обновил...сорри!

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 09:17 15-05-2007
sqsqsq

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir, Maza Faka
Только без драк!
 
Сенькс!

Всего записей: 40 | Зарегистр. 06-07-2005 | Отправлено: 11:48 15-05-2007
Yuki2003



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Очень длинные строки в bat-файлах возможно "переносить"? Какой синтаксис?

Всего записей: 1077 | Зарегистр. 10-07-2003 | Отправлено: 12:11 15-05-2007
Maza Faka



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Yuki2003

Цитата:
Очень длинные строки в bat-файлах возможно "переносить"? Какой синтаксис?

Да, возможно, используй для этого символ "^"
Пример, я перенёс строку прямо в середине имени файла "MyPreviousFile.txt"

Код:
 
For /F "Eol=; Tokens=1-4 Delims=:" %%a in (MyPrevious^
File.txt) do Echo %%a %%b...
 

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 15:33 15-05-2007 | Исправлено: Maza Faka, 15:35 15-05-2007
XXXXL



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята,не знаю реально или нет но мне нужен такой батник чтоб с оприделённый директории удалял все файлы кроме указыных.
Предпаложим папка XXX а в ней нужные мне файлы 1.jpg 2.txt 3.exe и т.д.
и много ненужных файлов с различными расширениями.Как заставить батник удалить всё кроме необходимых мне.

Прошу знающих откликнуться!!!!!

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 00:28 17-05-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
XXXXL

Код:
@echo off
setlocal
set "folder=C:\Temp"
set "no_del_list=c:\no_del.txt"
for /f "tokens=*" %%a in ('dir /b /a-d "%folder%" ^| findstr /i /v /g:"%no_del_list%"') do del /q "%folder%\%%a" 2>nul

Вместо C:\Temp пишешь путь к директории, где надо удалить файлы.
Вместо c:\no_del.txt пишешь путь к файлу, где находится список имен, которые не надо удалять. Каждое имя файла в списке должно быть на новой строке.

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 02:18 17-05-2007
XXXXL



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
Всё зделал
 
Спасибо!!!!

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 12:39 17-05-2007 | Исправлено: XXXXL, 13:36 17-05-2007
king_stiven

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А куда девается пробел, если с него начинается имя файла в команде  dir  /o /b /a:d ? И можно ли сосчитать число знаков в строке, включая пробелы?

Всего записей: 2167 | Зарегистр. 17-07-2006 | Отправлено: 14:07 17-05-2007 | Исправлено: king_stiven, 14:09 17-05-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
king_stiven

Цитата:
А куда девается пробел, если с него начинается имя файла в команде  dir  /o /b /a:d ?

Не понимаю вопрос - распиши подробнее

Цитата:
И можно ли сосчитать число знаков в строке, включая пробелы?

Можно.

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 14:21 17-05-2007
king_stiven

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir

Код:
 
for /f "usebackq tokens=*" %%e in (`dir "*.mask" /o /b /a:-d`) do (
  echo %%e
  ......
  ......
  )
 

 
Если %%e начинается с пробела, пробел не сохраняется.
 

Цитата:
И можно ли сосчитать число знаков в строке, включая пробелы?  
 
Можно.  

А пример, желательно простой.
 

Всего записей: 2167 | Зарегистр. 17-07-2006 | Отправлено: 14:36 17-05-2007 | Исправлено: king_stiven, 14:37 17-05-2007
Maza Faka



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
king_stiven

Цитата:
можно ли сосчитать число знаков в строке, включая пробелы?  

Ну например так:

Код:
 
@Echo off
Echo Hello world> tmp
for %%a in (tmp) do set Symbol=%%~za
set /a symbol-=2
Echo %symbol%
 

В строке "Hello world" 11 символов...

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 15:14 17-05-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
king_stiven

Цитата:
Если %%e начинается с пробела, пробел не сохраняется.

Видимо какой-то баг for-а. У меня тоже не получилось вывести через for файл начинающийся с пробела (пробелов).

Цитата:
А пример, желательно простой

http://forum.ru-board.com/topic.cgi?forum=62&topic=9040&start=1600#19
Но если это нужно для определения первого пробела - скорее всего не поможет.
 
Добавлено:
Maza Faka
Не увидел, что ты ответил

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 15:17 17-05-2007
Maza Faka



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Elroir
Так я вспомнил, именно твой пример по ссылке, когда-то он меня поразил, потому и запомнил!

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 15:34 17-05-2007
king_stiven

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Maza Faka

Спасибо! И как это я %%~za просмотрел?

Всего записей: 2167 | Зарегистр. 17-07-2006 | Отправлено: 15:58 17-05-2007
utka00



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день.
Вопрос такой: если запущено несколько копий программы то как закрыть только некоторые (через батник конечно)
Спасибо всем кто поможет

Всего записей: 95 | Зарегистр. 01-05-2007 | Отправлено: 16:21 17-05-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
utka00
Заголовки окон разных копий программы отличаются?

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 18:04 17-05-2007
utka00



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
да

Всего записей: 95 | Зарегистр. 01-05-2007 | Отправлено: 18:07 17-05-2007
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Widok (19-11-2007 12:08): лимит страниц. продолжаем здесь


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru