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

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

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

Widok (03-03-2010 16:29): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Widok



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

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

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 12:38 10-03-2009 | Исправлено: TechnicsKuzya, 13:54 27-12-2009
Cosmogor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
 
Спасибо, скачал
Модераторы, а почему в шапке нету этих утилит.

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 08:25 15-05-2009
ScreamWolf



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

Приветствую всех!
Где-то чуть меньше полугода изучаю батники и и применения... и... тут столкнулся со сложной для меня задачуй... Я до конца не изучил (для меня почему-то эти операторы сложноваты) FOR и SET (особенно первый) и поэтому никак не могу спрвиться с задачкой...
 
ВОТ УСЛОВИЕ
некая перменная CHEKFILE=nnnXmYYYY
где:
"n" - это латинские буквы (значение постоянное)
"X" - это цыфра от 1 до 9
"m" - это латинские буквы от "a" до "z"
"Y" - это число от 0000 до 9999
 
И САМА ЗАДАЧКА
необходимо создать счеткик для поска файла (переменная %CHEKFILE%)
что бы поиск начался с nnn1a0000
и закончился на nnn9z9999
 
при первом же совпадении (счетчик останавливаеться)
необходимо группированное выполнение команд с другими файлами
при этом создаюсться отдельные txt-файлы
в строках тела которых содиржится %CHEKFILE%,
значение которого развернуто в найденое имя файла
+ создание лога и завершение работы данного батника
 
лог необходим для того что бы запустив следующий раз он считывал данные с лог файла
и продолжил поиск с того имени на котором остановился прошлый раз
 
 
Помогите plz начинающему...

Всего записей: 197 | Зарегистр. 15-05-2009 | Отправлено: 12:09 15-05-2009 | Исправлено: ScreamWolf, 12:12 15-05-2009
vitrzn



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите возможно ли это?
Есть список файлов !
нужно сохранить названия файлов в TXT , так чтобы был не просто список имён, а  
имя файла -- дата файла -- время создания
 
Можно ли это батником?  
 
команда dir выводит так  
04.05.2009  11:03             1 852 CONS#1_1531.USR
04.05.2009  10:11             1 372 CONS#1_2227.USR
а надо:
 
CONS#1_1531.USR    04.05.2009  11:03             1 852  
CONS#1_2227.USR    04.05.2009  10:11             1 372  
 

Всего записей: 1468 | Зарегистр. 28-10-2007 | Отправлено: 14:43 15-05-2009 | Исправлено: vitrzn, 14:51 15-05-2009
ScreamWolf



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

Цитата:
нужно сохранить названия файлов в TXT , так чтобы был не просто список имён, а  
имя файла -- дата файла -- время создания  
 

 
http://www.dynawell.com/download/reskit/microsoft/win2000/forfiles.zip

Всего записей: 197 | Зарегистр. 15-05-2009 | Отправлено: 15:51 15-05-2009
KPOBABAK



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите батничек
необходимо выкидывать пользователя из системы если время его логина больше 17-00 и меньше 8-00

Всего записей: 87 | Зарегистр. 16-11-2005 | Отправлено: 16:10 15-05-2009
Cosmogor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день.
 
Подскажите пожалуйста по скрипту.
 
Код:
 
setlocal enabledelayedexpansion  
for %%d in (c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do dir %%d:>nul 2>&1 && set zz=!zz!,%%d  
echo %zz%

 
Скрипт выводит доступные диски
 
Переменная %zz%, это для всех дисков.
А как сделать переменную для последнего  
диска? Даже если в системе один диск.
Вот у меня выводит 4 диска c,d,e,f
и мне нужна отдельная переменная для  
диска f.
 
Спс.

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 19:02 15-05-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cosmogor
 
   
...&& set zz=%%d
 
Добавлено:
vitrzn

Код:
 
@echo off
for /f "tokens=*" %%i in ('dir /b') do echo %%~nxi  %%~ti  %%~zi
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:16 15-05-2009
HaK1R



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

Код:
@echo off
rem указываем задержку между проверками в секундах
set /a timesleep=60
rem Указываем время после которого выходит из системы:
set /a h1=17
set /a m1=0
set /a s1=0
rem Указываем время до которого выходит из системы:
set /a h2=8
set /a m2=0
set /a s2=0
set /a TimeInSec1=(%h1%*60+%m1%)*60+%s1%
set /a TimeInSec2=(%h2%*60+%m2%)*60+%s2%
set /a timesleep+=1
 
:check
for /f "tokens=1,2,3 delims=:" %%i in ("%time:~0,8%") do (set hh=%%i) & (set mm=%%j) & (set ss=%%k)
set /a TimeInSec=(%hh%*60+%mm%)*60+%ss%
if %TimeInSec% GEQ %TimeInSec1% (goto :TurnOff)
if %TimeInSec% Lss %TimeInSec2% (goto :TurnOff)
ping -n %timesleep% localhost>nul
goto :check
 
:TurnOff
shutdown -l -t 0
 

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 20:27 15-05-2009
vitrzn



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

Цитата:
vitrzn  
 
Код:  
@echo off  
for /f "tokens=*" %%i in ('dir /b') do echo %%~nxi  %%~ti  %%~zi  
 

 
Сортировку в окне батника вижу, а как теперь её сохранить в 1.txt  ?

Всего записей: 1468 | Зарегистр. 28-10-2007 | Отправлено: 20:32 15-05-2009
01MDM



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

Цитата:
Сортировку в окне батника вижу, а как теперь её сохранить в 1.txt  ?

 

Код:
 
@echo off
chcp 1251 1>nul
for /f "tokens=*" %%i in ('dir /b') do echo %%~nxi  %%~ti  %%~zi 1>>1.txt
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 20:47 15-05-2009
WARRCAN

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста, как сделать скрипт чтобы он открывал txt файл, добавлял в его  конец текст из другого txt файла и сохранял его. Или подскажите, где поучиться, посмотреть...

Всего записей: 13 | Зарегистр. 18-06-2007 | Отправлено: 22:44 15-05-2009
vitrzn



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
ВЫ КАК ВСЕГДА НА ВЫСОТЕ !!!
всё работает как надо !
 
А можно ещё ?!
Есть  такой список, сделанный заранее (не более 50 строк):
Вася - CONS#1_1531.USR
Петя - CONS#1_2227.USR
 
после того как список есть в 1.txt можно ли его ещё разок дополнить по такому принципу
Вася - CONS#1_1531.USR    04.05.2009  11:03             1 852  
Петя - CONS#1_2227.USR    04.05.2009  10:11             1 372  
 - CONS#1_1588.USR    04.05.2009  11:03             1 852  
 - CONS#1_2299.USR    04.05.2009  10:11             1 372  
Т.е. если название файла совпадает с тем что напротив "Вася - CONS#1_1531.USR", то "Вася - " ставиться вначале строки.  
А если такого совпадения нету, то ставиться вначале " - "
 

Всего записей: 1468 | Зарегистр. 28-10-2007 | Отправлено: 22:53 15-05-2009 | Исправлено: vitrzn, 22:54 15-05-2009
HaK1R



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

Код:
@echo off
set "FileRead=C:\read.txt"
set "FileWrite=C:\write.txt"
chcp 1251>nul
for /f "tokens=*" %%i in (%FileRead%) do echo %%i>>%FileWrite%
chcp 866>nul

 
vitrzn
 
Я правильно понимаю что есть не более 50 строчек в 1.тхт файле такого вида
Вася - CONS#1_1531.USR
Петя - CONS#1_2227.USR
а что сделать я не понял, можешь пояснить

Цитата:
Т.е. если название файла совпадает с тем что напротив "Вася - CONS#1_1531.USR", то "Вася - " ставиться вначале строки.  
А если такого совпадения нету, то ставиться вначале " - "  

 
Добавлено:

Цитата:
если название файла совпадает с тем что напротив "Вася - CONS#1_1531.USR", то "Вася - " ставиться вначале строки

куда он ставится, если Вася там уже стоит?

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 00:23 16-05-2009
WARRCAN

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HaK1R, огромное спасибо! А можно сделать так, чтобы информация, которая добавляется, записывалась после пустой строчки (то есть, чтобы пропускалась одна строчка)?

Всего записей: 13 | Зарегистр. 18-06-2007 | Отправлено: 00:33 16-05-2009
HaK1R



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

Код:
@echo off
set "FileRead=C:\read.txt"
set "FileWrite=C:\write.txt"
chcp 1251>nul
echo.>>%FileWrite%
for /f "tokens=*" %%i in (%FileRead%) do echo %%i>>%FileWrite%
chcp 866>nul

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 00:38 16-05-2009 | Исправлено: HaK1R, 00:48 16-05-2009
vitrzn



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

Цитата:
Я правильно понимаю что есть не более 50 строчек в 1.тхт файле такого вида  
Вася - CONS#1_1531.USR  
Петя - CONS#1_2227.USR  
а что сделать я не понял, можешь пояснить  
 
Цитата:Т.е. если название файла совпадает с тем что напротив "Вася - CONS#1_1531.USR", то "Вася - " ставиться вначале строки.    
А если такого совпадения нету, то ставиться вначале " - "  
 
Цитата:если название файла совпадает с тем что напротив "Вася - CONS#1_1531.USR", то "Вася - " ставиться вначале строки  
 
куда он ставится, если Вася там уже стоит?

 
Объсняю!
Есть список Name.txt в нём  
Вася - CONS#1_1531.USR  
Петя - CONS#1_2227.USR  
и т.д. 50 строчек
 
Есть файлы CONS#1_1531.USR, CONS#1_2227.USR и т.д. кол-во может быть больше 50.
 
Нужно обработать эти файлы, взять имя+дата+время и сохранить в файл otchet.txt где будет  список такого вида:
Вася - CONS#1_1531.USR    04.05.2009  11:03          
Петя - CONS#1_2227.USR    04.05.2009  10:11              
 - CONS#1_1588.USR    04.05.2009  11:03                
 - CONS#1_2299.USR    04.05.2009  10:11      
 
Т.е. построить отчёт (в txt) так чтобы было понятно кому принадлежит это CONS#1_1531.USR , в данном случае Вася - CONS#1_1531.USR , а если файл CONS#1_1599.USR нельзя сравнить со списком из Name.txt то тогда вначале либо " - " ну или вообще ни чего.
 
Задача обработать список файлов и сформировать один отчёт где будет видно когда эти файлы были созданы и кому принадлежат.
 
Список из Name.txt не обязательно отдельным файлом, можно и в батник запихнуть - не принципиально, главное итоговый otchet.txt .

Всего записей: 1468 | Зарегистр. 28-10-2007 | Отправлено: 09:46 16-05-2009
HaK1R



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

Код:
@echo off
set "DirPath=C:\test"
set "NameInFile=Name.txt"
set "Report=Report.txt"
chcp 1251>nul
pushd %DirPath%
for /f "tokens=*" %%i in ('dir /b *.USR') do (
  findstr /i /c:%%i "%NameInFile%">nul 2>&1
  if errorlevel 1 (
    echo - %%i %%~ti>>%Report%
  ) else (
    for /f "tokens=1,2 delims=-" %%a in (%NameInFile%) do (
      if "%%b"==" %%i" (
        echo %%a- %%i %%~ti>>%REport%%
      )
    )
  )
)
popd
chcp 866>nul
 

 
В Name.txt посмотри чтобы пробелов в конце строк не было

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 10:30 16-05-2009 | Исправлено: HaK1R, 11:25 16-05-2009
king_stiven

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cosmogor
for %%e in (c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do if exist %%e: set Last=%%e:

Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 11:32 16-05-2009 | Исправлено: king_stiven, 18:46 17-05-2009
Vimana2



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может, кто знает, как на удаленной машине из командной строки поменять значение реестра в ветке HKCR?

Всего записей: 110 | Зарегистр. 10-03-2003 | Отправлено: 12:04 16-05-2009
yurkesha



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vimana2
так как HKCR это алиас а не ветка то: HKCR = HKLM\SOFTWARE\Classes

----------
Всем непричастным рекомендую прогулки на свежем воздухе

Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 12:33 16-05-2009
   

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Widok (03-03-2010 16:29): Лимит страниц. Продолжаем здесь.


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru