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

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

Автор: Johny_x3mal
Дата сообщения: 13.02.2009 09:48
Всем привет!
Кто-нить, скажите, как мне с командной строки осуществить поиск файла по всем разделам жесткого диска?
Автор: dimpase
Дата сообщения: 13.02.2009 10:56
Johny_x3mal
Используй
(q w e r t y u i o p a s d f g h j k l z x c v b n m)
Автор: Johny_x3mal
Дата сообщения: 13.02.2009 13:02
dimpase
опиши, плиз, подробнее


Добавлено:
dimpase
Опиши команду подробнее, плиииз
Автор: 01MDM
Дата сообщения: 13.02.2009 14:11
Johny_x3mal

Цитата:
Кто-нить, скажите, как мне с командной строки осуществить поиск файла по всем разделам жесткого диска?


Код:
@echo off
for %%i in (q w e r t y u i o p s d f g h j k l z x c v n m) do (
dir /b /s /a "%%i:\filename.ext"
)
Автор: Maza_Faka
Дата сообщения: 13.02.2009 14:18
Kilyan

Цитата:
выделенный фрагмент нужно вообще убрать


Код:
sed "s_\/.*\/__g" < test.txt > out.txt
Автор: Johny_x3mal
Дата сообщения: 13.02.2009 14:57
dimpase
01MDM
Спасибо, огроменое
Автор: Kilyan
Дата сообщения: 13.02.2009 15:05
Maza_Faka
Убирает конечно то все, но мне бы один слэш оставить! - я же вроде бы и выделил то что неоходимо! Понять бы как это еще работает!!!
Автор: Maza_Faka
Дата сообщения: 14.02.2009 07:07
Kilyan

Цитата:
мне бы один слэш оставить! - я же вроде бы и выделил то что неоходимо!

Сорри, попробуй так:

Код:
sed "s_\/.*\/_/_g" < test.txt > out.txt
Автор: NvvLazyTiger
Дата сообщения: 14.02.2009 14:02
Kilyan

Цитата:
Вывод времени работы процедуры
Если это не сложно отпишите как?

То, что ты нашёл - годится для батника "на скорую руку", запускаемого человеком.
Т.к. он привязан к формату выдачи переменной %time%, а этот формат зависит от настроек системы.

Альтернатива - использование тех или иных сторонних средств - утилиты или интерпретаторы, коих не счесть.

Простейший путь - использование утилиты timethis.exe из "2000 Resource Kit". Вот как выглядит таймирование работы примитивного батника:
Цитата:
D:\ResKit2k>timethis.exe a.cmd

TimeThis : Command Line : a.cmd
TimeThis : Start Time : Sat Feb 14 22:00:04 2009

D:\ResKit2k>dir 1>nul

TimeThis : Command Line : a.cmd
TimeThis : Start Time : Sat Feb 14 22:00:04 2009
TimeThis : End Time : Sat Feb 14 22:00:04 2009
TimeThis : Elapsed Time : 00:00:00.030
Автор: zzxx1488
Дата сообщения: 14.02.2009 15:19
вот где-то пролетало, сохранил на скорую руку

@echo off
setlocal
for /f "tokens=1-4 delims=:," %%a in ('echo %time%') do call :setTime start %%a %%b %%c %%d
:: ЗДЕСЬ ТВОЙ КОД
:: Вместо строчки ping-a
:: можно написать "call yourBatchFile.cmd"

call runme.bat

:: КОНЕЦ ТВОЕГО КОДА
for /f "tokens=1-4 delims=:," %%a in ('echo %time%') do call :setTime finish %%a %%b %%c %%d
call :showTime
goto :EOF
:setTime
set "%1Time=%2:%3:%4,%5"
set "t=%5"
set "s=%4"
set "m=%3"
set "h=%2"

if "%t:~0,1%"=="0" set "t=%t:~1%"
if "%s:~0,1%"=="0" set "s=%s:~1%"
if "%m:~0,1%"=="0" set "m=%m:~1%"
if "%h:~0,1%"=="0" set "h=%h:~1%"

set "tt=%t%"
set /a "ss=s * 100"
set /a "mm=m * 6000"
set /a "hh=h * 360000"
set /a "%1=hh+mm+ss+tt"

goto :EOF
:showTime
set /a "dif=%finish%-%start%"
set /a "difHH=dif / 360000"
set /a "difRem=dif %% 360000"
set /a "difMM=difRem / 6000"
set /a "difRem=difRem %% 6000"
set /a "difSS=difRem / 100"
set /a difTT=difRem %% 100"
set "difference=%difHH%:%difMM%:%difSS%,%difTT%"
echo start = %StartTime%
echo finish = %FinishTime%
echo Time taken : %difference%
pause
Автор: Kilyan
Дата сообщения: 14.02.2009 16:35
Maza_Faka

Цитата:
Сорри, попробуй так:

Код:
sed "s_\/.*\/_/_g" < test.txt > out.txt

а нет ли какого нить описания на русском? а то что то с доками которые идут с ним - не понять!
Автор: lorents
Дата сообщения: 15.02.2009 12:01
не подскажите как мне через командную строку соединить два html-файла?
и еще получится ли это с pdf и doc файлами?
Автор: Smitis
Дата сообщения: 15.02.2009 14:53
lorents

Цитата:
не подскажите как мне через командную строку соединить два html-файла?
и еще получится ли это с pdf и doc файлами?

Кроспостинг запрещён правилами (или как там правильно называется дублирование постов в разных темах).

Добавлено:
An0xiety

Цитата:
1) большая просьба, можете привести пример, как под вин. нужно указать параметр игнора регистра?

sed s/123/456/gi New_file.txt

Добавлено:
Kilyan

Цитата:
а нет ли какого нить описания на русском? а то что то с доками которые идут с ним - не понять!

http://www.citforum.ru/operating_systems/articles/sed_awk.shtml
http://www.csa.ru/CSA/tutor/sed/index.htmr
http://www.opennet.ru/base/dev/sed1line.txt.html
Автор: lorents
Дата сообщения: 15.02.2009 15:41
Smitis
простите, сам не знаю зачем я дважды написал в смежных темах
Автор: adam264
Дата сообщения: 15.02.2009 17:58
Помогите пожалуйста написать батник чтобы он читал данные из текстового файла:

27.270: Ch(3):sHB(2.28,2.27,2.28,2.27,0)
27.271: Ch(2):sHB(2.28,2.28,2.28,0.00,0)
28.094: 23:01:37 Player Nick connected (id=3165452)
28.934: Ch(3):sInst(3.94,3.94,1.66,1.66,0)
34.624: Ch(4):uRTT(0.53,2,903,616098,614866,1.23)
34.627: Ch(3):st(31,43,0,43,0,0,0,3,4/0,0,0.25,5/0,1,0.25,4,0)
34.650: Ch(2):st(30,42,0,42,1,1,0,3,5/0,0,0.27,4/0,0,0.27,5,0)
34.656: 23:01:43 Nick uses modified data file - Merged\00007mc_vojakw2.paa
34.656: 23:01:43 Nick uses modified data file - Merged\00001&krovi4.paa
36.187: Ch(4):sHB(2.18,1.56,1.21,0.00,0)
36.544: Ch(3):sInst(4.50,4.50,2.17,2.17,0)

Нужно по условию если встречается фраза "uses modified data file -" взять впереди стоящий от неё ник, который может содержать различные символы, включая пробелы, но исключая двоеточие, найти его "id" выше по тексту и это число занести в буфер обмена.
Автор: Studio13 OutlaW
Дата сообщения: 15.02.2009 22:00
01MDM
А как можно выставить шрифт такой?
Автор: Elroir
Дата сообщения: 16.02.2009 13:50
Studio13 OutlaW

Автор: Studio13 OutlaW
Дата сообщения: 16.02.2009 17:46
Elroir
Если запустить батник на другом компе, будет такой же шрифт?
Автор: Elroir
Дата сообщения: 16.02.2009 19:18
Studio13 OutlaW
Нет. Шрифт устанавливается для системы, а не для батника. По умолчанию (если я не ошибаюсь) в WinXP, для консоли стоит именно этот шрифт.
Автор: Studio13 OutlaW
Дата сообщения: 16.02.2009 20:20
Elroir
Благодарю за информацию....
Автор: An0xiety
Дата сообщения: 16.02.2009 20:43
Smitis
Спасибо огромнейшие! Работает!

Цитата:
1) большая просьба, можете привести пример, как под вин. нужно указать параметр игнора регистра?

Код: sed s/123/456/gi New_file.txt

Автор: 01MDM
Дата сообщения: 16.02.2009 21:06
An0xiety

Цитата:
2) можно ли читать из файла input.txt и после выполнения операций в этот же файл input.txt и записать?



Код:
sed -i "s/123/456/g" input.txt
Автор: An0xiety
Дата сообщения: 16.02.2009 22:16
01MDM

Есть файл input.txt, в нем записано одно слово:

Код: FALSE
Автор: adam264
Дата сообщения: 16.02.2009 23:26
Хочу понемногу осваивать командный язык Windows на примере поставленной задачи. Если не трудно, помогите разобраться.

Вообще, батником реально мониторить лог файлы на предмет появления набора символов?
Автор: z3r
Дата сообщения: 17.02.2009 01:52
Необходимо архивировать раз в неделю одну папку внутри которой еще кучка. С архивацией думаю разберусь. ВинРар в консоли работает
Вобщем к примеру папка CLients
в которой Vasya,Petya,Mitya как бы мне после архивации удалить все заархивированные файлы но оставить сами папки. Количество папок всегда меняется добавляются новые.
Автор: 01MDM
Дата сообщения: 17.02.2009 04:29
An0xiety


Цитата:
Версия sed 3.0.28 для windows


У меня 4.1.5. - но не советую из-за того, что после обработки файла, символ конца строки конвертируется в юникс стандарт.

Попробуй с временным файлом, потому что по сути дела так все и происходит:

Код:
sed "s/false/true/gi" input.txt 1>input.tmp && move /y input.tmp input.txt
Автор: nNau
Дата сообщения: 17.02.2009 05:12
z3r
Если нужно удалить все файлы из c:\CLients и его подкаталогов то:

del /s /q c:\CLients\*.*

Если не все, то вместо *.* задать маску, например:

del /s /q c:\CLients\*.txt
Автор: Maza_Faka
Дата сообщения: 17.02.2009 06:42
adam264

Цитата:
мониторить лог файлы на предмет появления набора символов?


Код:
@Echo Off
Type log.txt | Find /i "Some symbols">Nul && Echo Success
Автор: nNau
Дата сообщения: 17.02.2009 08:16
adam264

Цитата:
Нужно по условию если встречается фраза "uses modified data file -" взять впереди стоящий от неё ник, который может содержать различные символы, включая пробелы, но исключая двоеточие, найти его "id" выше по тексту и это число занести в буфер обмена.

Если бы не пробелы в имени, можно было бы воспользоваться вот таким примерно кодом:

for /f "tokens=3-7" %%B in (1.txt) do (
if /I '%%C%%D%%E%%F'=='usesmodifieddatafile' (for /f "tokens=4-6" %%N in (1.txt) do (
if /I '%%N'=='%%B' (for /f "delims==) tokens=2" %%Y in ("%%P") do (
echo %%Y >> 2.txt)))))

Здесь проверяется файл 1.txt, а id выводится в файл 2.txt, но если в нике содержится пробел, то этот код его не отловит.
Автор: milwaukeeman
Дата сообщения: 17.02.2009 15:59
Еще раз говорю. чтоб удалял папку только после нажатия Завершить

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: DVD-video (ДВД-видео) - что и как (часть 3)


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