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

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

Автор: Grim_Repo
Дата сообщения: 10.04.2008 19:20
igor_andreev
Цитата:
/m
Копирует только те файлы, которые имеют установленный атрибут «архивный». В отличие от параметра /a, параметр /m очищает атрибут «архивный» у скопированных файлов. Сведения об установке атрибутов с помощью команды attrib см. по ссылке «См. также».
Помоему - /m это не то...

S4astliff4ik
Цитата:
вот это не совсем понял... что это???
*.* - означает что: будут копироваться файлы с любыми именами и с любыми расширениями...

2ALL
Вообщем, никак не могу понять - как заставить .cmd'шников в случае завершения пользователем (Ctrl+C) не выдовать запрос: Остановить выполнение пакетного файла [y/n]?
Автор: igor_andreev
Дата сообщения: 10.04.2008 19:53
Grim_Repo

Цитата:
Помоему - /m это не то...

Это только по твоему. Читайте мануалы на ночь, это один из самых простых и древних способов бекапа только измененных файлов.

Проделай вот это пошагово и все поймешь:
1) Зайди из комстроки в любую папку, с файлами *.txt например, и дай команду ATTRIB.
2) Видишь, напротив каждого файла есть буковка A? Теперь напиши команду ATTRIB -A *.TXT и нажми Enter.
3) Еще раз ATTRIB. Что видим? Нет буковок A
4) Открой любой *.txt в этой папке обычным виндовым блокнотом и измени его, ну впиши там пару букв или пробел поставь. Закрой файл, на вопрос о сохранении ответь утвердительно.
5) Еще раз ATTRIB. Что видим? Напротив того файла, что ты изменил, появилась буква A
То есть XCOPY, запущенная с параметром /M или /A, скопирует только этот файл. А остальные файлы, если их не изменять, так и будут без аттрибута "Архивный". В архиваторах, в том же rar.exe зачем по твоему нужны опции -ac и -ao? Для этого вот
Автор: NikTychina
Дата сообщения: 10.04.2008 20:09
Дико извиняюсь, что вмешиваюсь. Кто-нить может помочь мне с окном командной строки?? (мой пост выше)
Автор: Dantis
Дата сообщения: 10.04.2008 20:11

Цитата:

Но если уж очень надо именно из батника следить за временем

:wait
it "%time:~0,5%"=="03:00" goto :reboot
ping -n 5 localhost > nul
goto :wait

:reboot
shutdown /r /t 30


Спасибо... но батник не работае =).... а причем тут команда пинг ? =)


Цитата:
Не самое здоровое желание. Одно дело будет висеть процесс и грузить... грузить... (каждую секунду). Другое дело планировщик, который сам выполнит в заданное время задание.

Если есть какие нюансы, объясни.


Просто плонировшик не работает так как надо... =)




Автор: 01MDM
Дата сообщения: 10.04.2008 20:47
Dantis

Просто простая описка wolf0425, замени "it" на "if"

ping для снижения нагрузки - делает паузу в бесконечном (до 3:00) цикле.
Но все равно это не лучшее решение.

И что у тебя не работает?

Код:
at 3:00 shutdown /r /t 30
Автор: Elroir
Дата сообщения: 10.04.2008 23:15
NikTychina

Цитата:
Нужно, чтобы при запущенной командной строке не было её окна (можно свернуть), а также чтобы не было видно кнопки в панели задач (это, пожалуй, главное). Как можно сделать?

В шапке, в разделе "Полезные утилиты", посмотри cmdow и hstart
Автор: Jun1or
Дата сообщения: 10.04.2008 23:32
Привет.
Подскажите плз.
Есть архивы формата DD.MM.YYYY.rar, как сделать так что бы они переносились в подпапки: например в папке есть архивы ??.03.???? и ??.04.???? как заставить те что 03 кидать в папку March ( или 03 ), а 04 в April ( или 04 ) ?
Автор: Elroir
Дата сообщения: 11.04.2008 00:00
Jun1or

Код:

@echo off
setlocal enabledelayedexpansion
set "01=January" & set "02=February" & set "03=March"
set "04=April" & set "05=May" & set "06=June"
set "07=July" & set "08=August" & set "09=September"
set "10=October" & set "11=November" & set "12=December"
for %%a in (??.??.????.rar) do call :move_file "%%a"
goto :EOF
:move_file
set "file=%~1"
for %%b in (01 02 03 04 05 06 07 08 09 10 11 12) do (
if %file:~3,2%==%%b (md !%%b! 2>nul & move /y "%file%" !%%b!\)
)

Автор: Jun1or
Дата сообщения: 11.04.2008 06:14
Elroir простите, я не смог самостоятельно прикрутить этот код к своему скрипту ...
Помогите если не сложно, заранее спасибо )

1 часть скрипта делает архив папок с логами, папки формата DD.MM.YYYY


Код:
for /D /D %%A in (E:\service\logs\*.*) do "C:\Program Files\WinRAR\RAR.exe" -ac -ed A "%%A.rar" "%%A"
Автор: pavel1978
Дата сообщения: 11.04.2008 08:06
Доброго времени суток! Подскажите, пож-ста:
1) при копировании с пом команды xcopy батник не понимает папки, имена которых содержат пробелы, например, new folder. А если написать так - newfolder, то все норм, копирует. как обрулить пробелы, не переименовывая папку?
2) Используя команду net send приходится писАть транслитом, русских букв не понимает, пишет "кракозябры". Как с этим бороться? Может, шрифты-параметры командной строки какие поменять?
Автор: S4astliff4ik
Дата сообщения: 11.04.2008 08:45
pavel1978,если я не ошибаюсь,смотри чуть выше,и посмотри на ответы уважаемого,Grim_Repo. В частности,на ответы,которые он давал мне!!!
Автор: ipmanyak
Дата сообщения: 11.04.2008 09:17
pavel1978 1 - бери пути и имена файлов в кавычки
пример:
"C:\Program Files\WinRAR\Rar.exe" u -m2 X:\Pavlov\pavlov "C:\Мои документы"
2 - Кто пишет кракозябры? В каком редакторе работаешь и в какой кодировке? Видимо юзаешь notepad? Он пишет в кодировке WIN, а нужно слать в кодировке DOS. Пользуйся прогой FAR вместо notepad (его встроенным редактором).
Автор: pavel1978
Дата сообщения: 11.04.2008 10:03
с первым разобрался, спасибо!
Со вторым вопросом - даже без батника, делая нет сенд такого рода:
пуск\выполнить\cmd, далее net send domainname Тут я пишу русскими a tut latinskimi,
латынь понимает, русский - нет. Даже из-под дельфи когда юзаю - та же картина. Т.е. это сама командная строка "глючит". Где в ее свойствах кодировку поправить?
Автор: Simple Crypt
Дата сообщения: 11.04.2008 10:46
pavel1978
Не факт, что поможет, но попробуйте в сеансе CMD перед net send выполнить
chcp 1251
Автор: HelpAbout
Дата сообщения: 11.04.2008 10:57
Приветствую!
Никак не могу разобраться каким образом, без приминения дополнительных программ типа gsar организовать поиск по текстовому файлу и замену текста. Смысл вот в чем, существует документ (ini - файл), который лежит в директории С:\Program Files\Client\Setup.ini, внутри него необходимо найти и заменить строчку Firewall=1 на Firewall=0, хотел попросить Вашей помощи.
Автор: vint321
Дата сообщения: 11.04.2008 11:42
Есть проблема:
существует папка с ~ 1500 файлами (tif) средний размер файла 45mb, чтобы просмотреть такое количество снимков такого размера нужна минимум неделя (машина тупит жутко), поэтому я конвертнул их в jpg (в соседнюю директорию) – просмотрел ненужное убил.
Вопрос как сделать batник который прочитал бы содержимое папки с jpg а затем убил в папке с tifами лишние файлы.
Автор: king_stiven
Дата сообщения: 11.04.2008 13:48
vint321

Код: @echo off
for %%c in ("E:\split\батники\батники проба\*.tif") do (
if not exist "E:\split\батники\батники проба\00\%%~nc.jpg" del "%%c"
)
Автор: vint321
Дата сообщения: 11.04.2008 14:10
king_stiven

огромное спасибо
Автор: Simple Crypt
Дата сообщения: 11.04.2008 14:51
HelpAbout
@echo off
setlocal
for /f "usebackq tokens=*" %%i in ("С:\Program Files\Client\Setup.ini") do (
if /I "%%i"=="Firewall=1" (echo Firewall^=^0>>"С:\Program Files\Client\Setup.temp")
else (echo %%i>>"С:\Program Files\Client\Setup.temp")
)
move /y "С:\Program Files\Client\Setup.temp" "С:\Program Files\Client\Setup.ini"
endlocal
Автор: slech
Дата сообщения: 11.04.2008 15:22
всем привет.
подскажите пожалуйста как в текстовом файле удалить из начала строки скажем 10 первых символов.
во всех строчках.

спасибо.
Автор: Elroir
Дата сообщения: 11.04.2008 15:44
Jun1or

Код:
::Начало батника
@echo off
::Первая часть
for /D %%A in (E:\service\logs\*.*) do "C:\Program Files\WinRAR\RAR.exe" -ac -ed A "%%A.rar" "%%A"
::Вторая часть
setlocal enabledelayedexpansion
set "source=E:\service\logs\"
set "dest=\\test\TEST_BACKUP\Logs\"
set "01=January" & set "02=February" & set "03=March"
set "04=April" & set "05=May" & set "06=June"
set "07=July" & set "08=August" & set "09=September"
set "10=October" & set "11=November" & set "12=December"
pushd "%source%"
for %%a in (??.??.????.rar) do call :move_file "%%a"
popd
goto :EOF
:move_file
set "file=%~1"
for %%b in (01 02 03 04 05 06 07 08 09 10 11 12) do (
if %file:~3,2%==%%b (md "%dest%!%%b!" 2>nul & move /y "%file%" "%dest%!%%b!\")
)
Автор: Jun1or
Дата сообщения: 12.04.2008 08:32
Elroir
Огромное спасибо! Всё работает!!!
Автор: Rush
Дата сообщения: 12.04.2008 09:38
slech

Цитата:
подскажите пожалуйста как в текстовом файле удалить из начала строки скажем 10 первых символов.
во всех строчках.

А почему обязательно бат-файлом, а не VBS, например? Скриптом-то быстрее будет...
И ты не сказал - а если в строке меньше 10 знаков, удалять их все или удалять строку вообще, или оставлять как есть...
Автор: 01MDM
Дата сообщения: 12.04.2008 10:47
slech

Можно конечно каждую строчку циклом загнать в переменную и вывести в другой файл без первых 10 символов:

Код:
@echo off
for /f "tokens=*" %%i in (in.txt) do set "line=%%i" && call:write
goto:eof
:write
echo %line:~10%>>out.txt
Автор: Rush
Дата сообщения: 12.04.2008 12:35
Уважаемые, небольшая просьба - у кого будет желание, сравните на быстродействие с sed. Хочется посмотреть, как по скорости соответствует.
[more=Скрипт замены по регэкспам]if wscript.arguments.count = 3 then
fname = wscript.arguments.item(1)
fname2 = wscript.arguments.item(2)
mask = wscript.arguments.item(0)
set fso = createobject("scripting.filesystemobject")
set rexp = createobject("vbscript.regexp")
set txtfile = fso.opentextfile(fname):txt = txtfile.readall:txtfile.close
arg = split(mask, "==")
rexp.pattern = arg(0):rexp.global = true:rexp.multiline = true
txt = rexp.replace(txt, arg(1))
set txtfile = fso.opentextfile(fname2, 2, true):txtfile.write txt:txtfile.close
end if
wscript.quit

'' запуск из командной строки - wscript.exe "replacerexp.vbs" "^.{10}==" "in.txt" "out.txt" //b[/more]
Автор: 01MDM
Дата сообщения: 12.04.2008 13:20
Rush

in.txt = 1.02 Mb

Вывод запускного батника:

Код:
14:08:01,62 start vbs
14:08:02,06 stop vbs

14:08:02,06 start sed
14:08:02,40 stop sed

14:08:02,40 start cmd
14:15:36,04 stop cmd
Автор: Rush
Дата сообщения: 12.04.2008 14:51
01MDM
Многовато. Я на глаз тестил файл размером 5.5 мб - задержки не заметил... Ну на глазок и есть на глазок...
Автор: Dmitriy05
Дата сообщения: 13.04.2008 17:11
Создаю батник для копирования файла opera6.adr и папки /sessions/ в отдельную папку

С 1й задачей справился быстро:

Код: copy "C:\Opera 8\profile\opera6.adr" C:\Recover\opera6.adr
Автор: 01MDM
Дата сообщения: 13.04.2008 17:51
Dmitriy05

Удалить папку:

Код:
rd /s /q C:\Recover\sessions
Автор: Dmitriy05
Дата сообщения: 13.04.2008 18:26
01MDM
Большое Спасибо!!!

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Сброс пароля администратора


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