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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 - Позволяет превратить ваш батник в независимое приложение
· Пример - получение и обработка списка пользователей
 
 
Старая версия первого сообщения

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



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

Всего записей: 1104 | Зарегистр. 30-12-2003 | Отправлено: 22:01 14-10-2007
KosarKosta

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, я очень недавно начал изучать язык БАТ-фалов. Кое-что я уже могу, а кое-что мне не под силу. Помогите с написанием батника.
Вот есть вирус, который копирует себя в папку, принимая имя самой папки.
Как можно написать батник, чтобы он сканировал, сравнивал имена папки и exe-файла, и если они совпадают, то exe-файлы перемещались бы в заранее созданную папку.

Всего записей: 15 | Зарегистр. 16-10-2007 | Отправлено: 09:54 16-10-2007
Grisha_Tamashi_SAN



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

Цитата:
freeminded


Цитата:
Подскажите, реально ли написать авторан для флехи, с которого бы запускался батник?  
Например - тыкаю флешку в Юсби и на тебе - запустился батник (сам по себе, так как авторан на установочных дисках).  
 
Я пробывал писать - но у меня получался только авторан контекстным меню вот текст:  

----------<SKIP>---------
Смотри мой пост Ссылка

Всего записей: 49 | Зарегистр. 17-09-2002 | Отправлено: 10:12 16-10-2007
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
KosarKosta
Лечить вирусы батничками...??? Это круть....
 

Код:
@Echo Off
FOR /R C:\ %%a In (.) Do Call :AV "%%a" "%%~na"
GoTo :EOF
 
 
:AV
Set fld=%1
Set fld=%fld:~1%
Set Fld=%fld:~0,-2%
Set FldN=%2
Set FldN=%FldN:~1%
Set FldN=%FldN:~0,-1%
If Exist "%fld%%fldN%.Exe" Move "%fld%%fldN%.Exe" D:\Virus\
GoTo :EOF
 
 

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:28 16-10-2007
KosarKosta

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да вот, приходится пользоваться батниками. Я каспером почти не пользуюсь. Только если появляются новые вирусы, да и то ради того, чтобы посмотреть, где какой заседает. А чистить от вирусов я предпочитаю ручками; а их всех в лицо знаю, а потом все равно приходиться реестр чистить. А вот батники помогают мне ускорить ручной труд. Пока не проверял то, что предложил KapralBel , но все равно заранее спасибо. Собираюсь тестировать мой антивирусный батник со всеми известными мне вирусами. Как протестирую - выложу, а вы, пожалуйста, напишите, где что ни так, или где можно улучшить.

Всего записей: 15 | Зарегистр. 16-10-2007 | Отправлено: 18:27 16-10-2007
KosarKosta

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
@Echo Off  
FOR /R C:\ %%a In (.) Do Call :AV "%%a" "%%~na"  
GoTo :EOF  
   
:AV  
Set fld=%1  
Set fld=%fld:~1%  
Set Fld=%fld:~0,-2%  
Set FldN=%2  
Set FldN=%FldN:~1%  
Set FldN=%FldN:~0,-1%  
If Exist "%fld%%fldN%.Exe" Move "%fld%%fldN%.Exe" С:\Virus\  
GoTo :EOF
 
Что-то она не работает. Само сканирование идет, а в папку не переносит.
Похоже, что какие-то ошибки есть: пишет, что такая-то exe не является внешней или внутренней программой.  
Может посмотрите почему не работает.

Всего записей: 15 | Зарегистр. 16-10-2007 | Отправлено: 08:57 17-10-2007
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
KosarKosta
Сделай 1-й строкой @Echo On  и посмотри что именно не нравится
 
У меня есть глубокое подозрение - что вирус уже сделал свое дело....

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:08 17-10-2007
01MDM



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

Код:
 
@echo off
setlocal enabledelayedexpansion
    for /r C:\ %%i in (.) do (
    set "fld=%%i"
    call:check
)
goto:eof
:check
set count=1
:loop
for /f "tokens=%count% delims=\" %%i in ('echo %fld%') do (
    if not %%i==. (
    set /a count+=1
    goto:loop
    )
)
set /a count-=1
for /f "tokens=%count% delims=\" %%i in ('echo %fld%') do (
    set "file=%%i.exe"
    if exist "%fld:~0,-1%!file!" move "%fld:~0,-1%!file!" D:\Virus
)
 
 

Перенесет все не занятые *.exe совпадающие с именем родительской папки (тут возможны и ненужные переносы)  

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 10:12 17-10-2007 | Исправлено: 01MDM, 10:30 17-10-2007
Maza Faka



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

Код:
 
@ECHO OFF
FOR /R C:\TEMP %%A IN (.) DO IF EXIST "%%~FA\%%~NXA.EXE" MOVE "%%~FA\%%~NXA.EXE" D:\CARANTINE
 

Пути (выделено жирным) замени на свои.

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 10:48 17-10-2007
Senior lecturer



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужно выполнить следующую задачу. При запуске bat-файла необходимо выполнить копирование с сетевого ресурса. Если сеть есть (ПК-источник включен), то проблем никаких. Но если он выключен - bat-ник подвисает, т.к. не может найти IP. Копирую с помощью команды xcopy. Каким образом перед копированием можно выполнить проверку наличия ПК-источника, чтобы потом, при положительном ответе, скопировать данные?

Всего записей: 461 | Зарегистр. 05-09-2007 | Отправлено: 11:09 17-10-2007
alexvsm



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

Код:
ping IP && команда

если пингуется то команда будет выполнена, если не пингуется то не будет

Код:
ping IP || команда

все наоборот

Всего записей: 140 | Зарегистр. 23-11-2004 | Отправлено: 11:33 17-10-2007
KosarKosta

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо 01MDM и Maza Faka
Обе программы классно выполняют задачи.
 
У меня есть просьба к админу.
Можно дать ссылку (хотя бы временную), чтобы сразу скачать все странички (с 1 по 111) в заархивированном виде. Страницы можно в любом виде, лишь бы было читабельно. Много чего можно найти здесь интерестного. Плохо, что страницы у меня открываются медленно. 10 страниц скопировал - 12 м нет.

Всего записей: 15 | Зарегистр. 16-10-2007 | Отправлено: 17:06 17-10-2007
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
KosarKosta
 
Версия для печати подойдет?

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 17:49 17-10-2007
Arckon

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот такая проблема:
Нужно в имени файла выделить первую последовательность цифр. Примеры:
"filename001.txt" -> "001"
"12filename.345_fg.txt" -> "12"
"as1s2d3" -> "1"
"dash8746234" -> "8746234"
 
Возможно такое сделать? Второй час уже убиваю на это дело, даже не знаю, как подступиться.

Всего записей: 1 | Зарегистр. 17-10-2007 | Отправлено: 20:36 17-10-2007
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arckon
Поясни, что значит "выделить"?

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 21:36 17-10-2007
KosarKosta

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо KapralBel
Кстати, разобрался. Твой вариант тоже работает.

Всего записей: 15 | Зарегистр. 16-10-2007 | Отправлено: 09:09 18-10-2007
Maza Faka



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

Цитата:
выделить первую последовательность цифр

Можно при помощи SED, но вот синтаксиса этой утилиты я не знаю

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 09:19 18-10-2007
KosarKosta

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите, плиз, чайнику немного разобраться с командами.
Как обозначить "любая\ые папки"
Вот, напр., в какой-то папке находится батник, в которой также находится n папок.
Я, напр., хочу чтобы этот батник скопировал себя в эти папки.
copy %0 "любая\ые папки" , т.е. скопировать саму себя в "любая\ые папки"
Если
Set dir=%1
copy %0 %1 (или %dir%)
то не получается
Или без цикла не обойтись?
если да, то как это примерно будет выглядеть.

Всего записей: 15 | Зарегистр. 16-10-2007 | Отправлено: 17:12 18-10-2007
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
KosarKosta
FOR /?
часть FOR /R

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 17:18 18-10-2007
Smitis



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

Цитата:
Можно при помощи SED, но вот синтаксиса этой утилиты я не знаю

http://www.csa.ru/CSA/tutor/sed/index.htmr

----------
Разум когда-нибудь победит

Всего записей: 3457 | Зарегистр. 09-02-2003 | Отправлено: 22:35 18-10-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.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru