( Вход | Регистрация | Поиск )

Батники, bat навсегда
Дата обновления: 10.02.2015 - 06:06, перейти к новому сообщению

·ENOTik_18654
Группа: Пользователи

Сообщений: 241
Предлагаю открыть тему создания разичный bat-файлов aka быстрого выполнения рутинных действий на компьютере, таких как содание папок с заданным именеи и резервное копирование туда нужой информации, сканирование папок с музыкой и создание плейлистов.

CODE
rem Создание папки с заданным именем
set /p FolderName=Введите имя папки:
echo %FolderName%
pause
md %FolderName%
echo Everything Done!


А это пример моего файла, которым я пользуюсь для создания резервных копий базы данных антивируса:

CODE
@echo off
title Резервное копирование

set archdir=E:\Distrib\BACKUP\Avast
set backupLST=E:\Distrib\Создание_backup

echo Идет остановка антивируса
net stop "avast! Antivirus"
net stop "aswUpdSv"
net stop "avast! Mail Scanner"
net stop "avast! Web Scanner"
pause

echo Идет архивация антивирусной базы данных программы Avast! Antivirus...

"%PROGRAMFILES%\WinRar\rar" a -ag+DD-MMM-YYYY -ilog:%archdir%\error.log -m5 -dh -t -idc  E:\Distrib\BACKUP\Avast\ @backup.lst

echo ********** >> %archdir%\backup.log
date /t >> %archdir%\backup.log
time /t >> %archdir%\backup.log
echo OK! >> %archdir%\backup.log
pause

net start "avast! Antivirus"
net start "aswUpdSv"
net start "avast! Mail Scanner"
net start "avast! Web Scanner"
rem Запуск иконки в трее
cmd /C "%PROGRAMFILES%\Avast4\ashDisp.exe"
echo Теперь окно можно закрыть :-) ...



Ответов(160 - 169)

·nokeMoH
Группа: Пользователи

Сообщений: 1.076
Добрый день любимые форумчане.. подскажите пожалуйста.. Нужен батник слейдующего характера:

Есть [.txt] файл размером не более нескольких 10-ов кБ, требуется слейдующее..

Чтобы при активации [.bat] файла (двойным по нему кликом), он автоматически в самом конце документа, заменял последие имеющиеся там символы (10, 20, 50, 100 или 200 штук символов) на одну и ту же совершенно любую букву.. Была чтобы желательно возможность править этот [.bat] файл вручную, для определения точного количества замен, на личный выбор это 100, 200 или 500 последних символов в документе, не важно сколько.. © Есть только одно условие.. Чтобы последние 5-10-20 символов в документе не были видоизменёнными, а оставались прежними.. Желательно это количество чтобы тоже в [.bat] файле контролировалось..

К примеру есть документ с содержанием таким: 1234567890qwertyuiopasdfghjklzxcvbnm ,, нужно оставить последних 5 символов, а 12 перед ним, заменить на символ Ы ,, в результате чего бы получили 1234567890qwertyuioЫЫЫЫЫЫЫЫЫЫЫЫcvbnm.. То есть общее количество символов в документе не прибавляется, а остаётся прежним, по скольку они не дописываются, а заменяются друг на друга..

Желательно результат получить в ново-созданном рядом документе, чтобы не испортить оригинальный файл..

unsure.gif Пожааалуйста, помогитее !!!

(!) произошло изменение текста для тех, кто уже успел прочитать его первую форму, небольше поправки, просим прощения..



·nokeMoH
Группа: Пользователи

Сообщений: 1.076
Извиняемся за даблпостинг.. Сделали эту тему по той причине, что найденные примеры в сети по батникам, не подходили, коряво работали, и не всегда срабатывали на различных текстах, думали может есть что-то универсальное, наверное увы((.. Нужно направленное [.exe] приложение, Просто очень нужно, рассмотрели бы любые условия, софтинка вроде бы не весьма хитровыдуманная, простая..

Какая будет примерная цена вопроса если говорить об этом.. Не отворачивайтесь пожалуйста..


·eli2003
Группа: Наши Люди

Сообщений: 177
Вопрос - работа идет в винде?
Извиняюсь за древность - можно на Clipper exeшник сработать. (раньше с ним работал. Сейчас только изучаю С++, Яву.) При включении будет спрашивать Сколько знаков менять на какой и сколько оставлять. Но... просто тут у нас, наверняка, есть кодеры и на нормальных языках)))) Что-нибудь под виндой сделать могут. На крайний случай - стучи.


·ENOTik_18654
Группа: Пользователи

Сообщений: 241
nokeMoH, я думаю тут надо изобретать что-то на VBS)


·nokeMoH
Группа: Пользователи

Сообщений: 1.076
Да товарищи, софтинка такая нужна на XP.. eli2003, не разбираемся в программировании, а очень хочется.. даже не имеем представления в какой среде программирования созданная программка работала бы быстрее остальных, наверное это чуть ли ни один из самых важных параметров при написании приложений для многих.. Ну и как и другим, хотелось бы конечно что бы приложение работало относительно без замедлений.. ENOTik_18654, все найденые и испытанные Батники в сети не подходили по той только лишь причине, что они уже запинались при работе с текстом, где встречались крякозябы, - a.k.a 00-ff в HEX кодировке(..


·nokeMoH
Группа: Пользователи

Сообщений: 1.076
Большое спасибо всем за намёки и подсказки, временно все наши проблемы смогли пока решить связка из двух Консольных утилит под Win32, это DD for Windows и xvi32, к коим привели долгие, продолжительные безостановочные поиски.. Решили проблемы временно, - потому что они консольные, уж больно много боли с ними работать, что-то где-то подписывать, приписывать.. Не учились мы этому, и один лишний невнимательный знак, - и ни чего не работает, куда проще с GUI, которого нету(..

Есть одна идейка, аналогов которой нету ни где, что хочется очень воплотить наяву, по этому знаем что надоели своим незнаием и где-то глупыми вопросами.. Они со временем ещё будут появляться, пожалуйста не отворачивайтесь от чайников.. Хотелось бы и далее надеятся на Вашу помощь smile.gif ....


·Legat
Группа: Пользователи

Сообщений: 410
Сорри что поздновато, давно тут не был. Ну и с праздничками заодно.

Code

cls
$infile="f:\1.txt"
$out_file="f:\2.txt"
$new_substring="##########"
$toend=10
$encoding=[System.Text.Encoding]::Default
$content=[System.IO.File]::ReadAllText($infile,$encoding)
$begin_a=$content.Substring(0,$content.Length-$new_substring.Length-$toend)
$end_a=$content.Substring($content.Length-$toend)
$end_string=$begin_a + $new_substring + $end_a
[System.IO.File]::WriteAllText($out_file,$end_string,$encoding)


работает на текстовых файлах разной кодировки, указать можно в строке [System.Text.Encoding]::Default -соответствует ANSI. Думаю до пары-тройки мегабайт файлики перелопатит. размер файла сохраняется, кодировка тоже, но проверьте, какая у вас исходная - без понятия. Переменные начинаются с символа $, $toend - сколько вам надо оставить с хвоста файла. $new_substring - то на что хотите поменять.

Официальная ссылка на дистриб (Как загрузить Windows PowerShell)


! Предупреждение:
Активные ссылки на сторонние ресурсы запрещены Правилами нашего Форума. Устное предупреждение!



·Anthony
Группа: Наши Люди

Сообщений: 799
Прошу помощи вот в чём...

Нужно устроить бэкап почты. Outlook 2010 на Windows 7.
Сама прога на компе не закрывается, письма приходят постоянно и много.

Соответственно мне необходимо сохранять на серваке в лок. сети этот файл *.pst, но так чтобы прога не закрывалась. Или закрывалась, но после бэкапа открывалась заного.

Я настроил бэкап в самой винде (Функция архивации и восстановления данных), но:
1 - На стороннем компе восстановить *.pst не смог, выдавало ошибку
2 - *.pst файл довольно увесистый, а функции удаления старых копий в майкрософте не предусмотрели. ОТсюда переполнение дискового пространства на серваке.

Вопрос...
А нельзя ли сделать батник, который бы:
- каждый день в 04:00 утра выключал бы прогу Outlook
- сжимал файл *.pst в winrar'е с добавлением в имени файла даты
- запускал копирование файла *.pst на сервак
- удалял старые копии с сервака
- включал прогу

?


·_Dimas_
Группа: Пользователи

Сообщений: 71
Примерно таким макаром можно сделать

Code
@echo off

rem Формирование текущей даты в формате ГГГГ.ММ.ДД
for /f "tokens=1-4 delims=. " %%i in ('echo %Date%') do (
 set CurYaer=%%k
 set CurMonth=%%j
 set CurDay=%%i
)            
set CurDate=%CurYaer%.%CurMonth%.%CurDay%

rem Что архивируем (Файл бызы Outlook)
set ArcFiles=%LocalAppData%\Microsoft\Outlook\OST-FileName.ost
rem Куда архивируем
set ArcDest=\\SERVER\SHARE\ArcOutlook\
rem Как обзываем файл (Сохраняем в формате "ИмяПК_Логин")
set ArcFile=%ComputerName%_%UserName%

rem Путь программе архиватора и параметры запуска
set ExeRar=C:\Program Files\WinRAR\Rar.exe
set ParamRar=a -dh -ep1 -m5 -os -r -rr5p -y "%ArcDest%%ArcFile%_%CurDate%" "%ArcFiles%"

rem Убиваем Outlook
taskkill /im outlook.exe /f

rem Удаляем старые копии архивов
del /F /Q "%ArcDest%%ArcFile_*.rar"

rem Запускаем архивирование
"%ExeRar%" %ParamRar%

rem Запускаем Outlook
"C:\Program Files ..... outlook.exe"



·Anthony
Группа: Наши Люди

Сообщений: 799
Спасибо!! Супер,а куда мне вставить время начала операции?
Может сделать ежедневное задание в винде на 04:00 на выполнение этого файла?

И ещё, получается я сначала удалю все копии, а уже потом приступлю к бэкапу?
А если в этот момент ........ Я останусь без всего.

Можно ли сначала сделать бэкап, а уже потом (если всё пройдёт нормально) удалять прежние копии?