Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd)

Автор: guru431
Дата сообщения: 19.05.2009 10:51
01MDM


Цитата:
del /f /s /q "%Temp%\*" 1>nul 2>&1


Спасибо, работает )))

А есть какой-то вариант для всего батника сразу?
В батнике очень много строк, не очень хочется дописывать в конец каждой строки "1>nul 2>&1"
Автор: 01MDM
Дата сообщения: 19.05.2009 11:49
guru431

Цитата:
А есть какой-то вариант для всего батника сразу?


Можно сам батник запустить:

Код:
C:\> your.cmd 1>nul 2>&1
Автор: guru431
Дата сообщения: 19.05.2009 12:05
01MDM

Цитата:
C:\> your.cmd 1>nul 2>&1


Тогда будет скрыто абсолютно всё, а мне нужно, чтобы echo вывела вначале один заголовок и показывала только его в течении выполнения всего батника.
Автор: 01MDM
Дата сообщения: 19.05.2009 12:39
guru431
Ну и отправь только ошибки в нуль

Код:
C:\> your.cmd 2>nul
Автор: SParrow85
Дата сообщения: 19.05.2009 14:30
Есть задача для cmd.exe.

Необходимо в папке с подпапками удалить все файлы с заданым расширением и размером больше 1 мб

Подскажите как это сделать?
Автор: TruLander100
Дата сообщения: 19.05.2009 15:37
Народ подскажите хотябы как реализовать
вывод на экран для ввода с клавиатуры текста
"введите название (Zagolovok)"
после ввода чтоб заменял в определенном файле определенное слово на то что ввел с клавиатуры
Автор: HaK1R
Дата сообщения: 19.05.2009 17:04
TruLander100
Адрес сохранения выделен красным

Код: @echo off
set /p "Zagolovok=введите название"
set /p "akkount=введите свои данные в ipicture"
set /p "Filenamescrin=введите название файла скрина"
set /p "Razrabotchic=введите название компании разработчика"
set /p "platform=введите платформу"
set /p "Language=введите языки"
set /p "sizi=введите размер"
set /p "Opisanie=введите описание"
set /p "ssilka=введите ссылку"
chcp 1251>nul
(
echo [html] ^<div align="center"^>^<span style="font-size: medium"^>
echo ^<strong^>%Zagolovok% ^</strong^>
echo ^</span^>^</div^>^<table height="222" width="750"^>^<tbody^>^<tr^>^<td valign="top"^>
echo ^<strong^>^<span style="color: #000080"^>Скинсейвы:^</span^>^</strong^>^</td^>
echo ^<td^> [lightbox=http://pic.ipicture.ru/uploads/%akkount%/%Filenamescrin%^|
echo ^|]
echo [/lightbox] ^</td^>^</tr^>^<tr^>^<td^> ^<span style="color: #000080"^>
echo ^<strong^>Разработчик:^</strong^>^</span^>^</td^>^<td^> %Razrabotchic%^</td^>^</tr^>^<tr^>
echo ^<td^> ^<span style="color: #000080"^>^<strong^>Платформа:^</strong^>^</span^>
echo ^<br /^>^</td^>^<td^> %platform%^</td^>^</tr^>^<tr^>^<td^> ^<span style="color: #000080"^>
echo ^<strong^>Язык:^</strong^>^</span^>^</td^>^<td^> %Language%^</td^>
echo ^</tr^>^<tr^>^<td^> ^<span style="color: #000080"^>^<strong^>Размер:^</strong^>^</span^>^</td^>
echo ^<td^> ^<strong^>%sizi%^</strong^>^</td^>^</tr^>^<tr^>^<td valign="top"^>
echo ^<span style="color: #000080"^>^<strong^>Описание:^</strong^>^</span^>^</td^>
echo ^<td^> %Opisanie%^</td^>^</tr^>^<tr^>^<td^>
echo ^<span style="color: #ff0000"^>^<strong^>Скачать:^</strong^>^</span^>^</td^>^<td^>
echo ^<a href="%ssilka%" rel="external" title="скачать"^>
echo ^<span style="color: #ff0000"^>Depositfile^</span^>^</a^>^</td^>^</tr^>^</tbody^>
echo ^</table^> [/html]
) 1>"page.html"
chcp 866>nul
Автор: TruLander100
Дата сообщения: 19.05.2009 18:38
HaK1R
Спасибо выручил)) все работает!
но одно плохо то что все вручную вводить нужно.
можно как нибудь буфер обмена задействовать?
Автор: vitrzn
Дата сообщения: 19.05.2009 22:14
Наверняка как-то просто, но я не знаю ;(

Как из тела батника рядом создать файл 1.txt с определёным содержимым ?
т.е. :

бла бла
бла бла

:: создаём файл 1.txt с таким содержанием
ведите название файла скрина
введите название компании разработчика
ведите платформу
ведите языки"
ите размер

::продолжаем выполнять задачу
бла бла
бла бла
Автор: HaK1R
Дата сообщения: 19.05.2009 22:27
vitrzn Вот так?

Код: @echo off
...
...
...
chcp 1251>nul
(
echo ведите название файла скрина
echo введите название компании разработчика
echo ведите платформу
echo ведите языки
) 1>"1.txt"
chcp 866>nul
...
...

Автор: vitrzn
Дата сообщения: 19.05.2009 22:41
HaK1R

Спасибо !

А вот ещё вопрос.
Как-то можно сделать сортировку в файле Report.txt ?

- CONS#16_060.USR 05.11.2008 11:59
Петя - CONS#18_056.USR 19.05.2009 09:35
- CONS#1_049.USR 29.04.2009 14:17
- CONS#1_066.USR 29.04.2009 14:39
Вася - CONS#1_131.USR 18.05.2009 15:59
Коля - CONS#1_227.USR 18.05.2009 13:33
- CONS#2_012.USR 08.05.2009 13:21
- CONS#5_031.USR 05.05.2009 13:20
- CONS#5_049.USR 06.05.2009 15:01

так чтобы получилось:

Вася - CONS#1_131.USR 18.05.2009 15:59
Коля - CONS#1_227.USR 18.05.2009 13:33
Петя - CONS#18_056.USR 19.05.2009 09:35

- CONS#16_060.USR 05.11.2008 11:59
- CONS#1_049.USR 29.04.2009 14:17
- CONS#1_066.USR 29.04.2009 14:39
- CONS#2_012.USR 08.05.2009 13:21
- CONS#5_031.USR 05.05.2009 13:20
- CONS#5_049.USR 06.05.2009 15:01
Автор: HaK1R
Дата сообщения: 19.05.2009 23:19
vitrzn

Код: @echo off
set "FileName=Report.txt"
chcp 1251>nul
for /f "tokens=*" %%a in ('findstr /b /v /c:"-" "%FileName%"') do echo %%a>>"%FileName%_"
echo.>>"%FileName%_"
for /f "tokens=*" %%a in ('findstr /b /c:"-" "%FileName%"') do echo %%a>>"%FileName%_"
chcp 866>nul
del /f /q "%FileName%"
ren "%FileName%_" "%FileName%"
Автор: timsky
Дата сообщения: 20.05.2009 00:04
Есть большая необходимсть запускать пинг с выводом результата в текстовый файл.
Делаю так: ping -n 100 ya.ru > file.txt

Проблема в том, что кодировка 866.
Знаю, что chcp 1251 сменит кодировку на виндовую, но как эти 2 команды в одну строку соединить? Понимаю, что бред, но возможно ли это?

Т.е. что-то типа этого: ping -n 100 ya.ru (chcp 1251) > file.txt
Автор: vitrzn
Дата сообщения: 20.05.2009 01:36
HaK1R
В очередной раз СПАСИБО !!!
всё как надо работает !
Автор: HaK1R
Дата сообщения: 20.05.2009 07:28
timsky
Вот так ?

Код: chcp 1251>nul & ping -n 1 ya.ru>>file.txt & chcp 866>nul
Автор: 01MDM
Дата сообщения: 20.05.2009 09:41
timsky
HaK1R

Цитата:
Вот так ?


В одну строку, штатными силами - никак:

Код:
@echo off
for /f "tokens=*" %%i in ('ping ya.ru') do call:convert "%%i"
goto:eof

:convert
chcp 1251 1>nul
if %1=="" (echo. 1>>1.txt) else (echo %~1 1>>1.txt)
chcp 866 1>nul
Автор: KPOBABAK
Дата сообщения: 20.05.2009 15:33
Не подскажите, как организовать отключение пользователей от терминального сеанса?
список пользователей берется из текстового файла (в идеале конечно проверяется входит ли пользователь в определенную группу, и если нет, то отключается, но домен под линуксом, а не АД, не нашел как такую проверку замутить )

есть команда query user которая выдает код сеанса в виде

ПОЛЬЗОВАТЕЛЬ СЕАНС ID СТАТУС БЕЗДЕЙСТВ. ВРЕМЯ ВХОДА
>admin rdp-tcp#491 6 Активно . 19.05.2009 16:
17

есть команда tsdiscon ID которая этот сеанс и отключает. Как их совместить?


Автор: HaK1R
Дата сообщения: 20.05.2009 16:54
KPOBABAK

Цитата:
список пользователей берется из текстового файла

выложи пример списка

Добавлено:
KPOBABAK
если в текстовом файле 1.txt

Цитата:
ПОЛЬЗОВАТЕЛЬ СЕАНС ID СТАТУС БЕЗДЕЙСТВ. ВРЕМЯ ВХОДА
>admin rdp-tcp#491 6 Активно . 19.05.2009 16:17

то тогда

Код: @echo off
for /f "tokens=3 skip=1" %%i in (1.txt) do tsdiscon %%i
Автор: KPOBABAK
Дата сообщения: 21.05.2009 13:02

Цитата:
HaK1R


спасибо! все работает, но файл надо править вручную(
а как сделать чтобы из файлика users.txt вида:

usr1
usr2
usr3
usr4

брались узернаймы, для них выполнялось бы определение ID сессий через команду query user имя_юзера, и заносилось последовательно в файл 1.txt

ПОЛЬЗОВАТЕЛЬ СЕАНС ID СТАТУС БЕЗДЕЙСТВ. ВРЕМЯ ВХОДА
>usr1 rdp-tcp#491 6 Активно . 19.05.2009 16:17
>usr2 rdp-tcp#491 7 Активно . 19.05.2009 16:17
>usr3 rdp-tcp#491 8 Активно . 19.05.2009 16:17

Добавлено:
разобрался вроде) итоговый файлик

@echo off
del 1.txt
for /f "tokens=1" %%i in (users.txt) do query user %%i>>1.txt
for /f "tokens=3 skip=1" %%i in (1.txt) do tsdiscon %%i

отключает по найденым ID пользователей (из списка users.txt) от терминального сервера

вопрос такой, можно как то избавиться от промежуточного файла 1.txt?
Автор: HaK1R
Дата сообщения: 21.05.2009 14:32
KPOBABAK
Я не совсем сделал как ты просил, а именно пропустил стадию записи в 1.тхт, и она у меня берет имя из файла юзер.тхт потом узнает его id через query user, и подставляет его в tsdiscon ID

Код: @echo off
for /f "tokens=*" %%a in (user.txt) do (
for /f "tokens=3 skip=1" %%i in ('query user "%%a"') do tsdiscon %%i
)
Автор: 01MDM
Дата сообщения: 21.05.2009 14:35
KPOBABAK

Цитата:
можно как то избавиться от промежуточного файла 1.txt?

Можно, не могу проверить за отсутствием утилит.
Попробуй:

Код:
@echo off
for /f %%i in (users.txt) do (
    for /f "skip=1 tokens=3" %%i in ('query user %%i') do tsdiscon %%i
)
Автор: HaK1R
Дата сообщения: 21.05.2009 14:41
KPOBABAK
я посмотрел твой код и по моему он не совсем корректен, ведь в 1.txt будет

Цитата:
ПОЛЬЗОВАТЕЛЬ СЕАНС ID СТАТУС БЕЗДЕЙСТВ. ВРЕМЯ ВХОДА
>user1 rdp-tcp#491 6 Активно . 19.05.2009 16:17
ПОЛЬЗОВАТЕЛЬ СЕАНС ID СТАТУС БЕЗДЕЙСТВ. ВРЕМЯ ВХОДА
>user2 rdp-tcp#491 6 Активно . 19.05.2009 16:17

а не

Цитата:
ПОЛЬЗОВАТЕЛЬ СЕАНС ID СТАТУС БЕЗДЕЙСТВ. ВРЕМЯ ВХОДА
>user1 rdp-tcp#491 6 Активно . 19.05.2009 16:17
>user2 rdp-tcp#491 6 Активно . 19.05.2009 16:17



Добавлено:
01MDM
Я кстати тоже не могу проверить
Автор: KPOBABAK
Дата сообщения: 21.05.2009 16:39
HaK1R & 01MDM

Cпасибо! оба варианта работают

Да я знаю что не корректен, но на параметр 'ID' tsdiscon выдает ошибку и ничего не делает, что не мешает, так же если юзер уже отключен, то параметр ID отсутствует и вместо номера сеанса третьим токеном хватается надпись "Диск отключен" что тоже не мешает

Автор: spaulding2005
Дата сообщения: 22.05.2009 10:23
ребята подскажите такую вещь.
требуется в батнике либо cmd сделать так чтобы задачи в скрипте запускались одновременно.

тоесть к примеру:

c:\1.exe
c:\2.exe

сейчас такая ситуация когда запускается первый файл второй не запустится пока не закроешь первый.

помогите пожалуйста сделать так чтобы они одновременно запускались в скрипте
Автор: 01MDM
Дата сообщения: 22.05.2009 10:40
spaulding2005


Код:
start "" "c:\1.exe"
start "" "c:\2.exe"
Автор: spaulding2005
Дата сообщения: 22.05.2009 10:45
01MDM
спасибо!
Автор: Sandy Ann
Дата сообщения: 22.05.2009 20:03
Ребята, подскажите, реально ли батником проверить мой текущий ip-адрес и если он попадает в определенный диапазон (95.54.*.*), то он подает команду на перезагрузку модема. И если реально, то помогите нарисовать. А то пров задолбал вконец. Модем Zuxel Prestige 660RU. Заранее большое спасибо
Автор: HaK1R
Дата сообщения: 23.05.2009 07:21
Sandy Ann
Переменные выделенные красным поменяй на свои
если не поймешь, что за переменные то
Код: rasdial /?
Автор: Sandy Ann
Дата сообщения: 23.05.2009 10:47
HaK1R
Спасибо, но однако не то. Мне батником надо узнать внешний ip-адрес, а не адрес адаптера, по поводу перезагрузки модема вроде разобрался: будет реализовано на ztnbatch
Код: ZTnBatch -h 192.168.1.1 -p 1234 -c "sys reboot"
Автор: ewild
Дата сообщения: 23.05.2009 19:07
Предположим есть некая структура папок:

Код:
0\1\
0\2\
0\3\
...
0\9\1\
0\9\2\
0\9\3\

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: SAS.Планета (часть 2)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.