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

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

Автор: 01MDM
Дата сообщения: 08.07.2009 14:30
DeadAnarchist

Код:
@echo off

if not exist "%userprofile%\AppData\Roaming\Feedreader" goto:eof

c:\rar a -m5 -as -ep1 -ilogc:\rar.txt Feedreader "%userprofile%\AppData\Roaming\Feedreader"
cls
type c:\rar.txt
pause
del c:\rar.txt
Автор: slay1212
Дата сообщения: 08.07.2009 15:21
Как вывести сообщение на экран из логон логоф скрипта - cmd файла (w2k3)? По умолчанию весь вывод из них подавляется в ГП, и разрешать не хочется из-за одного сообщения.

Автор: 01MDM
Дата сообщения: 08.07.2009 15:34
slay1212
msg.exe поможет?

msg /?

Автор: slay1212
Дата сообщения: 08.07.2009 16:29
01MDM
Спасибо, все ок. Жаль что раньше не знал об этой встроенной утилите
Еще. Можно из бат файла создать записи для логон логоф скрипта?
Автор: 2life
Дата сообщения: 08.07.2009 23:37

Цитата:
Распиши, что и как должно делаться:
- как именуется (как идентифицировать) то, что следует скопировать;
- правило переименования "есть->должно быть" (что удаляется/добавляется в имени.расширении).

Уточни касаемо "сегодняшней даты, и времени", - должен ли скрипт работать при любых локальных настройках даты/времени?? Если "нет", - приведи выдачу (формат) команд
Код: echo %date%
echo %time%

Извиняюсь, что задержался:
- Именуется, начало от папки которую архивируем, далее дата и время, далее номер архива, по которому, Я думаю должно приниматся решение об удалении. Про привести формат выдачи команд, Я не понял...

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


Цитата:

@echo off
REM 1c upload started
"C:\Program Files\1Cv77\BIN\1cv7s.exe" config /D"F:\Base1C\PRBasic\" /NBackup /PziK77b /@f:\backup\zik-current\zik.prm
cls
REM upload transfer to backup srv started
net use Z: \\192.168.1.200\bk\ZiKCurr /user:user1 passw0rd
"C:\Program Files\WinRAR\rar.exe" a -y -r -dh -df -agYYYYMMDD_HH_MI_SS "Z:\bk\ZiKCurr\zik" "D:\BACKUP\zik"
cls
Echo Y | net use Z: /delete


Автор: NvvLazyTiger
Дата сообщения: 09.07.2009 06:36
2life
Цитата:
Про привести формат выдачи команд, Я не понял...
Т.к. предполагается использовать в батнике дату/время (в частности - текущие), то есть нюанс... ;)
Если батник будет работать на компе с известными локальными настройками, то получить дату/время просто (выделить нужные элементы выдачи указанных мной команд).
Если же локальные настройки заранее не известны или ожидаются разные для разных мест запуска, то нужны отдельные пляски с бубном для получения даты в нужном формате [см. напрример "Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек)"]. Тоже самое (хоти и не совсем также) и для времени. Например, у меня на WS
Код: O:\>echo %date%
Чт 2009.07.09
O:\>echo %time%
13:28:47.61
Автор: HaK1R
Дата сообщения: 09.07.2009 09:30
k8m

Цитата:
1)МОжете можете дописать в батник что бы файлы 2,3.. 17,18 писались каждый в свою папку?
2)Файл 1 бывает за разное число, тоисть 1_20090622.txt, 1_20090623.txt, 1_20090624.txt и т.д..Можно ли написать бат файл который бы сам распознавал дату и соответственно в файл 2,3.. 18 приклеивал эту дату.



Код: @echo off
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "tokens=1,2 delims=_" %%a in ('dir /b "a*_????????.txt"') do (
for /f "usebackq tokens=1* delims=|" %%c in ("%%a_%%b.txt") do (
set hjk=%%c
if "!hjk:~5,2!" LEQ "9" echo %%c^|%%d>>"C:\folder1\2_%%b.txt"
if "!hjk:~5,2!"=="32" echo %%c^|%%d>>"D:\priod\das\3_%%b.txt"
if "!hjk:~5,2!"=="36" echo %%c^|%%d>>"G:\1\2dasd\4_%%b.txt"
...
...
if "!hjk:~5,2!"=="50" echo %%c^|%%d>>"C:\17_%%b.txt"
)
)
Автор: Pr1nt
Дата сообщения: 09.07.2009 12:20
Помогите, пожалуйста, с простым вроде вопросом:
Как можно использовать переменную внутри другой переменной?
Такой способ не работает:

set a="hello"
set b=1
set c=!a:~%b%,2!
echo %c%

т.е. я хочу чтобы переменной "c" присваивалась часть строки "а" (в нормальном виде set c=%a:~1,2%)
Автор: 01MDM
Дата сообщения: 09.07.2009 12:43
Pr1nt

Цитата:
Такой способ не работает


А `setlocal enabledelayedexpansion` прописал?

Автор: Pr1nt
Дата сообщения: 09.07.2009 12:49

Цитата:
А `setlocal enabledelayedexpansion` прописал?

чОрт! Точно, нету
Спасибо большое.
Автор: Dennni
Дата сообщения: 09.07.2009 15:43
подскажите пожалуйста как можно автоматизировать смену ip адреса?
есть скажем текущий 172.16.10.10
а надо чтобы было 10.192.10.10
т.е. надо сменить поддиапазон на все ПК с 172.16. на 10.192.

я знаю что сменить IP можно так

Код: [no]netsh interface ip set address name="Подключение по локальной сети" static 10.192.10.10 255.255.0.0 10.192.1.1 1[/no]
Автор: HaK1R
Дата сообщения: 09.07.2009 17:17
Dennni
вот, как просил. только посомтри на что он меняет основной шлюз, там он рзве везде один будет?

Код: @echo off
for /f "tokens=1,2*" %%a in ('netsh interface ip show address') do (set "name=%%~c"&goto :1)
:1
for /f "tokens=3,4 delims=." %%a in ('netsh interface ip show address ^| find /i "IP"') do (set "a=%%a"&set "b=%%b"&goto :2)
:2
netsh interface ip set address name="%name%" static 10.192.%a%.%b% 255.255.0.0 10.192.1.1 1
Автор: Dennni
Дата сообщения: 10.07.2009 09:34
HaK1R, спасибо огромное работает!!! Сам бы я не дотумкал
Автор: maa78s
Дата сообщения: 10.07.2009 09:41
подскажите пожалуйста как можно удалить файлы из определенной дирректории, размер которых меньше 200 кБайт.
Автор: 01MDM
Дата сообщения: 10.07.2009 10:06
maa78s

Код:
@echo off
for %%i in ("SomeDir\*") do if %%~zi lss 204800 del "%%i"
Автор: 5555555
Дата сообщения: 10.07.2009 10:10
мдасс, разрослись "задачи на..."
возможно было, но:
из командного файла вызвать скрипт vbs для чтения занчения реестра, передать значение командному файлу...
Голова сёня вообще не работает
Автор: HaK1R
Дата сообщения: 10.07.2009 10:17
maa78s

Код: @echo off
for /f "tokens=*" %%a in ('dir /b /a-d "c:\"') do (if %%~za LSS 204800 (del /q /s "%%~fa"))
Автор: maa78s
Дата сообщения: 10.07.2009 10:19
Спасибо! Работает.
Автор: Maza_Faka
Дата сообщения: 10.07.2009 10:22
5555555

Цитата:
для чтения занчения реестра

Чем не устраивает команда

Код:
Reg Query
Автор: 5555555
Дата сообщения: 10.07.2009 10:34
Maza_Faka

Цитата:
Reg Query
а как вычленить значение? уже все позабыл
Автор: 01MDM
Дата сообщения: 10.07.2009 10:43
5555555
В простейшем случае так:

Код:
@echo off
setlocal

set exec='reg query hkcu\environment /v test'
for /f "tokens=3" %%i in (%exec%) do set "value=%%i"

echo %value%
Автор: 5555555
Дата сообщения: 10.07.2009 10:59
01MDM
пасиб, жаль номер токена принудительно придется править на каждый параметр (их имена пробелы содержат)...
И все-таки реально ли:
из командного файла вызвать скрипт vbs для чтения значения реестра, передать значение командному файлу...
Автор: 01MDM
Дата сообщения: 10.07.2009 11:51
5555555

Цитата:
жаль номер токена принудительно придется править на каждый параметр (их имена пробелы содержат)...


Все зависит от ситуации, но можно и не менять токен, а установить в качестве разделителя "Z",
Создал параметр "zz top" со значением "1 2 3"

Код:
@echo off
setlocal

set exec='reg query hkcu\environment /v "zz top"'

for /f "tokens=2 delims=Z" %%i in (%exec%) do call:set %%i
echo %value%
goto:eof

:set
set "value=%*"
Автор: ycmah
Дата сообщения: 10.07.2009 12:31
Help.

Задачка. Есть текстовые фалики вида - OADP001.TXT, OADP002.TXT и т.д.
Файлики создаются каждый день. Задачка состоит в том, чтобы написать батник, который считает с определенной строки внутри текстовика дату, создаст папку с этой датой и запихнет туда текстовик(и).


Код: 62320075 08JUL8
Автор: 5555555
Дата сообщения: 10.07.2009 12:35
01MDM

Цитата:
заменить все варианты REG_*
отлично. Спасибо, все уже работает, только интерес остался по поводу передачи переменных из скрипта в пакетник (и наоборот) туда <-> обратно, хотя бы на будущее...
Автор: 01MDM
Дата сообщения: 10.07.2009 12:55
5555555

Цитата:
только интерес остался по поводу передачи переменных из скрипта в пакетник (и наоборот) туда <-> обратно, хотя бы на будущее...


Если б разумел... Как вариант, через временный файл. Или составлять гибрид. Когда-то Smitis показывал на примере js. Но как туда что-либо прикрутить?


Код:
@set @x=0 /*
@echo off

:: start batch part

echo in batch

cscript //nologo //e:jscript %~nx0

exit /b */

// start Jscript part
WScript.Echo("in script")
Автор: levn
Дата сообщения: 10.07.2009 14:22
Всем привет!
Помогите решить следующую задачу:
Есть bat файл для очистки папки от временных файлов, который просто удаляет ненужные типы и все. Нужно чтобы bat файл выводил лог, в котором прописывал время удаления и количество удаленных файлов.

Подскажите пожалуйста как можно это сделать.
Автор: strat
Дата сообщения: 10.07.2009 14:33
наверно что-то вроде комбинации
dir /b >log.txt
del *.*

хотя dir и не считает количество файлов но остальные подскажут
Автор: levn
Дата сообщения: 10.07.2009 14:46
эта комбинация считает количество всех файлов и папок в текущей дирректории, откуда запускается батник
Автор: yurkesha
Дата сообщения: 10.07.2009 15:07
levn
Код: @echo off
setlocal enabledelayedexpansion
set /a "file_ves=0"
set /a "file_kol"
FOR /r %%i IN (*.*) DO (set /a file_ves=!file_ves!+%%~zi) & (set /a file_kol=!file_kol!+1) & del /q /f %%i
set /a "file_ves=%file_ves%/1024"
echo Удалено %file_kol% файлов общим размером в %file_ves% кб!

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778

Предыдущая тема: во вкладке автозагрузка


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