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

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

Автор: kvazigorynich
Дата сообщения: 22.05.2010 19:38
wolf0425
Спасибо большое, работает.

С mkdir экспериментировал просто.
Автор: 01MDM
Дата сообщения: 22.05.2010 19:56
Sorry, не заметил, удалил
Автор: wolf0425
Дата сообщения: 22.05.2010 20:00

Цитата:
у иеня такой вариант:
ну, для сквозного счетчика - нормальный вариант.
Для локальных счетчиков - переделывать дофига.
Автор: BagaBaga
Дата сообщения: 24.05.2010 09:49
Как с помощью sed преобразовать строку вида
One, Two, Three

Преобразвать в строки вида
One|Near
Two|Far
Three|Far

Т.е. разбить строку на несколько (разделитель в исходной строке - запятая), к первой строке (до первой запятой) дописать в конец |Near, последующим - |Far
Автор: igor_andreev
Дата сообщения: 24.05.2010 12:13

Код: echo One, Two, Three| sed -e "s/, /\|Near\n/;s/, /\|Far\n/g;s/$/\|Far/"
Автор: BagaBaga
Дата сообщения: 24.05.2010 21:12
Еще вопос по sed

Возможно ли с его помощью "склеить" две строки и разных файлов.

Допустим, есть строка в файле f1
стр1
и строка в файле f2
на выходе получить стрстр2
?

В простейшем случае (который вполне устроит), пусть в файлах только по одной строке
Автор: kermit
Дата сообщения: 24.05.2010 21:43
нужно выключать вечером компы, которые не выключили пользователи

сделал spisok.txt с именами компов и батник из одной строчки:

for /F %%i in (spisok.txt) do shutdown \\%%i /C /T:1

как сделать проверку на доступность компа в сети?

типа
for /F %%i in (spisok.txt) do (ping -n 1 %%i) && (shutdown %%i /C /T:1)
Автор: wolf0425
Дата сообщения: 24.05.2010 23:01
kermit

Цитата:
как сделать проверку на доступность компа в сети?


да как ты написал так и сделать
for /F %%i in (spisok.txt) do ping -n 1 %%i && shutdown -m \\%%i /C "shutdown all" /T:1
Автор: kermit
Дата сообщения: 24.05.2010 23:33
wolf0425
так не работает
пытается шатдаунить даже те, по кому пинг не прошел
Автор: wolf0425
Дата сообщения: 25.05.2010 00:01

Цитата:
пытается шатдаунить даже те, по кому пинг не прошел
а почему у меня не пытается?
всегда так проверял включенность компов и проблем не имел.
ты точно написал && а не &
и пинг у тебя точно родной виндовый, а не чей-то левый вызывается? ОС какая?

там невредно вывод пинга придушить - это да, а с ветвлением работает/не работает - всё замечетельно. XP pro sp3
Автор: MuxauJl
Дата сообщения: 25.05.2010 08:45

Добрый день.
Нужна помощь со следующей задачей:
В файл result.txt необходимо вывести строки из файлов *.txt в папке text, для которых совпадают числа из файла 1.txt.

1.txt
12345
12346
12347

2.txt (*.txt)
12345 eeee eeee
12346 eeee eee
12347 eee eeee
11111 eeee eee eeee
22222 eee eee ee


Код ниже берет только один файл (2.txt) и выводит в result.txt имя файла 2.txt чего быть не должно.


Код:
for /f "delims=" %%A in (2.txt) do (
find /i "%%A" 1.txt >> result.txt )
Автор: wolf0425
Дата сообщения: 25.05.2010 09:06

Цитата:
Код ниже берет только один файл (2.txt) и выводит в result.txt имя файла 2.txt чего быть не должно.


Код: for /f "delims=" %%A in (1.txt) do findstr /i /b /c:"%%A" <2.txt >>result.txt
Автор: Sustaw
Дата сообщения: 25.05.2010 14:44
Приветствую. Озадачился такой проблемой: Каждый день создаются директории с файлами с названием текущей даты. Допустим мне не нужны директории с файлами с устаревшей датой, допустим 3 дневной давности. Их нужно удалить, и файлы в них тоже. Если бы названия директорий были постоянными, то проблем нет. Вопрос такой: как постоянно, через .bat удалять директории с файлами, если названия директорий каждый раз разные, оставляя директории, срок создания которых менее 3 дней? Примеру скрипта был бы очень рад.
Автор: mugil_cephalus
Дата сообщения: 25.05.2010 14:57
Sustaw
http://forum.ru-board.com/topic.cgi?forum=62&topic=19668&start=0&limit=1&m=4#1
Автор: wolf0425
Дата сообщения: 25.05.2010 18:10

Цитата:
Вопрос такой: как постоянно, через .bat удалять директории с файлами, если названия директорий каждый раз разные, оставляя директории, срок создания которых менее 3 дней? Примеру скрипта был бы очень рад.
можно тупо - имена директориям давать в формате yyyy-mm-dd
после чего отсортировать по имени и удалять начиная с четвертой...
Автор: BagaBaga
Дата сообщения: 25.05.2010 21:45
как (с помощью sed?) сделать следующее:
есть два файла. на выходе получить строки из файла 2, которые отсутсвуют в файле 1 (т.е. вычесть строки файла 1 из файла 2)
Автор: 01MDM
Дата сообщения: 25.05.2010 22:33
BagaBaga

Цитата:
получить строки из файла 2, которые отсутсвуют в файле 1


Код:
findstr /v /g:1.txt 2.txt
Автор: boy999
Дата сообщения: 25.05.2010 22:42
ПОИСК И ЗАМЕНА файлов! КАК можно сделать!?
Автор: Joo1z
Дата сообщения: 26.05.2010 08:36
boy999

Код: dir /?
findstr /?
copy /?
xcopy /?
move /?
del /?
Автор: boy999
Дата сообщения: 26.05.2010 08:48
Joo1z
ОК, в папке с игрой: Lula 3D есть файл - Lula_clothes.dds, 17 шт.

Это модель Лулочки.

Мне надо её заменить на ещё более красивую модель, т.е. заменить все Lula_clothes.dds модифицированным файлом: Lula_clothes.dds...


КАК ЭТО СДЕЛАТЬ!?
Автор: Joo1z
Дата сообщения: 26.05.2010 09:11
boy999

Код: for /f %a in ('dir /b /s C:\Lula3D') do copy C:\Lula3D\Newfile.dds %a /y
Автор: boy999
Дата сообщения: 26.05.2010 09:55
Joo1z

Цитата:
for /f %a in ('dir /b /s C:\Lula3D') do copy C:\Lula3D\Newfile.dds %a /y


Это батник такой сделать? И чего оно даст? Заменит все модели нужной!?

Во всех папках?

Автор: BagaBaga
Дата сообщения: 26.05.2010 10:05
Как перенаправить снадартный вывод на stderr или stdlog
т.е. я хочу сделать echo ERROR так, чтобы сообщение пошло не на STDOUT, а на STDERR или STDLOG
Автор: Joo1z
Дата сообщения: 26.05.2010 11:17
boy999
Это прямо в командной строке можно вводить.
Если хочешь батник, то переменная должна быть %%a а не %a

Если сомневаешься в результате, то вставь @echo перед copy, посмотришь какие файлы он хочет заменить.
Автор: boy999
Дата сообщения: 26.05.2010 12:43
Joo1z


Цитата:
Это прямо в командной строке можно вводить.


Пишет: Файл не найден.

Автор: Joo1z
Дата сообщения: 26.05.2010 13:11
boy999
Значит пишешь

Код: for /f "tokens=*" %a in ('dir /b /s "S:\Lula 3D"') do copy здесь пишешь полный путь до нового файла вместе с именем. Если в этом пути есть имена папок с пробелами, то заключай весь путь в кавычки. "%a" /y
Автор: BagaBaga
Дата сообщения: 26.05.2010 13:25

Цитата:
Как перенаправить снадартный вывод на stderr или stdlog

отвечу сам себе
echo ERROR 1>&3
Автор: wolf0425
Дата сообщения: 26.05.2010 17:25
BagaBaga может заодно и расскажешь что такое stdlog и какие программы сами в него пишут?
Автор: mugil_cephalus
Дата сообщения: 26.05.2010 17:37
BagaBaga

Код: hh ntcmds.chm::/redirection.htm
Автор: boy999
Дата сообщения: 26.05.2010 18:00
Joo1z



Цитата:
for /f "tokens=*" %a in ('dir /b /s "S:\Lula 3D"') do copy здесь пишешь полный путь до нового файла вместе с именем. Если в этом пути есть имена папок с пробелами, то заключай весь путь в кавычки. "%a" /y



В командную строку ввёл: for /f "tokens=*" %a in ('dir /b /s "S:\Lula 3D"') do copy C:\Lula_clothes.dds

В ответ: Файл по прежнему не найден.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132

Предыдущая тема: XP не видит второй раздел на съемном USB-HDD


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