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

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

Автор: HaK1R
Дата сообщения: 10.07.2009 15:58
levn

Код: @echo off
setlocal enabledelayedexpansion
pushd "C:\1\"
set /a a=0
for /f "tokens=*" %%a in ('del /q /f /s /a * 2^>nul') do (set /a a+=1)
popd
(echo %date% числа в %time:~0,8% был^(о^) удален^(о^) %a% файл^(ов,а^)) 1>>report.log
Автор: levn
Дата сообщения: 10.07.2009 16:21
Спасибо, работает.
Только количество удаленных файлов на 1 больше.
Если в коде в начальных условиях поставить:
...
set /a a=0
...
то все нормально.

Добавлено:
поправка:
т.е. если поставить
set /a a=-1
Автор: HaK1R
Дата сообщения: 10.07.2009 17:33
levn
если ты это мне, то у меня все нормально работает.
наверное это из-за разной "сборкой" винды.
Автор: yuri7322
Дата сообщения: 10.07.2009 17:37
В myfile.css нужно найти все ./ и заменить на /img/

Вот с таким кодом работает, но при этом из result.css удаляются все восклицательные знаки

@echo on > result.css
setLocal EnableDelayedExpansion
for /f "tokens=* delims= " %%a in (myfile.css) do (set str=%%a
set str=!str:./=/img/!
echo !str! >> result.css
)

Помогите решить задачу
Автор: 01MDM
Дата сообщения: 10.07.2009 17:47
yuri7322

Код:
@echo off
setlocal

for /f "tokens=*" %%a in (myfile.css) do set "str=%%a" && call:write
goto:eof

:write
1>>result.css echo %str:./=/img/%
Автор: yuri7322
Дата сообщения: 10.07.2009 18:12
01MDM, спасибо за внимание к моей проблеме.

Однако у предлагаемого решения есть недостаток - выполнение скрипта обрывается если в myfile.css есть символы < >

Автор: 01MDM
Дата сообщения: 10.07.2009 18:30
yuri7322

Код:
@echo off
setlocal

for /f "tokens=*" %%a in (myfile.css) do call:write "%%a"
goto:eof

:write
set "str=%~1"
set "str=%str:<=^<%"
set "str=%str:>=^>%"
1>>result.css echo %str:./=/img/%
Автор: yuri7322
Дата сообщения: 10.07.2009 18:58
01MDM, супер!

Вот бы оно еще переводы строк и символы табуляции не удаляло из result.css, было бы совсем замечательно.
Автор: 01MDM
Дата сообщения: 10.07.2009 19:04
yuri7322


Цитата:
Вот бы оно еще переводы строк и символы табуляции не удаляло из result.css, было бы совсем замечательно.


Для этого лучше всего заюзать gsar (самое оно под задачу) или sed. И работают быстрее и нет проблем со спецсимволами.
Автор: yuri7322
Дата сообщения: 10.07.2009 20:25
01MDM, спасибо за наводку.

В любом случае скрипт сейчас с задачей справляется. Спасибо еще раз.
Автор: ZeroCrash
Дата сообщения: 13.07.2009 09:27
Нужно помочь вот с этим: Ссылка
Заранее благодарен!
Автор: smirnvlad
Дата сообщения: 13.07.2009 11:23
ZeroCrash

Код:
for %%i in (1,2,3,4) do set "i=%%i" & call:set_rand

for %%i in (1,2,3,4) do (
for /f "tokens=4 delims=_=" %%j in ('set x_%%i') do set x-%%i=%%j
for /f "tokens=4 delims=_=" %%j in ('set y_%%i') do set y-%%i=%%j
)

echo 1 c: %x-1%%y-1%%x-2%%y-2%-%x-3%%y-3%%x-4%%y-4%

goto:eof

:set_rand
for %%j in (a,f,d,e,c) do set "j=%%j" & call:set_randx
for %%j in (1,2,3,4) do set "j=%%j" & call:set_randy
goto:eof

:set_randx
set x_%i%_%random%=%j%
goto:eof

:set_randy
set y_%i%_%random%=%j%

Автор: yx0
Дата сообщения: 13.07.2009 13:57
Здравствуйте.

Помогите пожалуйста создать батник.

Задача такая:
Есть папка logs, а в ней некоторое (каждый день разное) количество подпапок. В каждой подпапке формируются файлы с определенным (одним и тем же для всех подпапок) названием.
Необходимо сделать батник, который будет шерстить каждую подпапку на предмет наличия файла с заданным именем, и переносить этот файл на другой диск в аналогичную подпапку (ее каждый раз надо создавать заново).

Далее эти логи архивируются и уходят на ленту, но с этим я без проблем справлюсь самостоятельно.
Затруднения у меня в той части, где надо обыскать все подпапки и перенести, создав подпапку с таким же именем. Будет шикарно, если в двух словах объясните как работает скрипт.

Я находил здесь ( http://forum.ru-board.com/topic.cgi?forum=62&topic=6156#9 ) скрипт, который искал на всех дисках файлы *.MP3, в чем то схожая задача, но как он работает я разобраться не смог, и под свои нужды подогнать, соответственно, тоже.

Заранее спасибо.
Автор: Rurik
Дата сообщения: 13.07.2009 14:18
yx0
Копай в сторону FOR /R
Автор: king_stiven
Дата сообщения: 13.07.2009 14:39
yx0
Я не знаю как у других, мне гораздо проше задачи с конкретными именами, а в твоей ещё и дописывать за тебя надо, что в жару проблематично.
Автор: yx0
Дата сообщения: 13.07.2009 15:18

Цитата:
Копай в сторону FOR /R


Спасибо, попробую.



Цитата:
Я не знаю как у других, мне гораздо проше задачи с конкретными именами, а в твоей ещё и дописывать за тебя надо, что в жару проблематично.


Попробую уточнить (если я вас правильно понял).

Есть папка f:\logs\
Есть неизвестное количетсво подпапок, имена разнообразные: f:\logs\123\, f:\logs\456\, f:\logs\789\ , f:\logs\.....
В подпапках (в некоторых) есть файлы "вчерашняя дата.log" (переменная %filename%, как ее получить я знаю).
Есть папка f:\backup\logs\
Необходимо искать в подпапках f:\logs\...... файл %filename%, и при его наличии
создавать в папке f:\backup\logs\ такую же подпапку, в которую переносить найденый файл.

Примерно так.
Автор: 01MDM
Дата сообщения: 13.07.2009 15:26
yx0

Код:
@echo off
setlocal

set "disk=X:"
for /f "tokens=*" %%i in ('dir /b /s "RootFolder\filename.ext"') do (
2>nul md "%disk%%%~pi"
move "%%i" "%disk%%%~pi"
)
Автор: king_stiven
Дата сообщения: 13.07.2009 17:07
yx0

Код: @echo off
cd /d f:\logs
for /d %%i in (*) do (
if exist "%%i\%filename%" (
md "f:\backup\logs\%%i"
move "%%i\%filename%" "f:\backup\logs\%%i"
)
)
Автор: yx0
Дата сообщения: 13.07.2009 18:03
TO: 01MDM, king_stiven

Большое спасибо, проверил оба варианта, оба отлично отработали!

Премного благодарен!

Автор: sergxz
Дата сообщения: 14.07.2009 11:23
Подскажите пожалуйста, есть батник который устанаваливает OpenOffice в тихом режиме
start /wait msiexec /qn /norestart /i \\server\Distr\OpenOffice\openofficeorg31.msi
Как сделать так, чтобы окошко батника не смущало пользователя, т.е чтобы установка шла полностью в тихом режиме, не выходило черное окошко на экран.
Команду @echo off вначале файла писал, выходит пустое черное окошко, нужно чтобы его вообще не было...)
Автор: Dekabryi
Дата сообщения: 14.07.2009 11:37

Цитата:
start /wait /min msiexec /qn /norestart /i \\server\Distr\OpenOffice\openofficeorg31.msi

так может будет лучше ?
Автор: HaK1R
Дата сообщения: 14.07.2009 13:53
sergxz
или может без /wait попробуешь? он запустит и завершится
Автор: sergxz
Дата сообщения: 14.07.2009 14:14
Dekabryi

Цитата:
start /wait /min msiexec /qn /norestart /i \\server\Distr\OpenOffice\openofficeorg31.msi  

так может будет лучше ?

так и не попробывал...
но вот это
Цитата:
sergxz
или может без /wait попробуешь? он запустит и завершится

помогло! спасибо!
Автор: ForposT_ForeveR
Дата сообщения: 14.07.2009 15:38
Здравствуйте.
Когда telnet'чусь к 192.168.0.1 происходит запрос пароля.
Подскажите пожалуйста bat-ник, которыйтелнетился, вводил пасс и запускал команду set reboot.
Спасибо
Автор: JohnRD
Дата сообщения: 14.07.2009 17:06
добрый день

подскажите пожалуйста

команда reg query в XP и Vista выводит немного поразному, а именно
чтобы разобрать ключ реестра, нужно пропустить разное количество строк
3 и 1 для XP и Vista
for /f "usebackq tokens=6 skip=3 delims=\" %%a in (`reg query
"HKEY_LOCAL_MACHINE\SOFTWARE\IDAVLab\Enterprise Suite\Components\54"`) do if "%%a"=="54" set my_key=%%a

кроме как учинить проверку по команде ver я не знаю, но билдов уже не по одному у Vista 6000, 6001

какие есть более красивые решения?

------------------------------------

! REG.EXE VERSION 3.0

HKEY_LOCAL_MACHINE\SOFTWARE\IDAVLab\Enterprise Suite\Components\54
User    REG_SZ    1
Arrived    REG_SZ    0
Policy    REG_SZ    0
Date    REG_SZ    20090709083101711


Vista
--------------------------------------------------

HKEY_LOCAL_MACHINE\SOFTWARE\IDAVLab\Enterprise Suite\Components\54
Arrived REG_SZ 0
User REG_SZ 0
Policy REG_SZ 0
--------------------------------------------------

спасибо
Евгений
Автор: 01MDM
Дата сообщения: 14.07.2009 17:39
JohnRD
Используй:

Код:
reg query "hkcu\some\reg\key" /v "param"
Автор: slay1212
Дата сообщения: 15.07.2009 08:12
господа возник странный глюк - из батника вызывается shutdown. Иногда в логах пишет что шатдоун не является ехе файлом или батником. И вручную пускаешь тоже пишет. И в system32 и syswow64 shutdown.exe нет. Есть только в dllcache. Если стартуешь отдельное окно с cmd все нормально. Где может порыться собака? ОС w2k3 r2 x64 .
На 32 битном батник нормально работает. Возможно в батнике шатдоун запускался с неправильными параметрами.
Батник запускался через планировщик с правами администратора ( не текущего юзера).
Автор: vcrank
Дата сообщения: 15.07.2009 09:25
Подскажите пожалуйста как с помощью bat-файлов сделать следующее:
Запускается батник
Выводится строка (пусть будет такая: В какой каталог поставить приложение: 1 (C:\), 2 (D:\))
и ниже поле для ввода
Ну далее пойдёт переход к нужной метке и выполнение программы. Интересует определение вводимого символа
Автор: noiseless
Дата сообщения: 15.07.2009 09:40
vcrank

Код: @echo off
cls
echo В какой каталог поставить приложение:
echo.
echo.
echo [1] C:\
echo [2] D:\
echo.
echo.
set /p sert="Нажмите соответствующий номер:"
if '%sert%'=='1' goto :volume_c
if '%sert%'=='2' goto :volume_d
if errorlevel 0 goto :END

:volume_c
rem действия с диском С
goto :END

:volume_d
rem действия с диском D

:END
Автор: vcrank
Дата сообщения: 15.07.2009 09:47
noiseless
Спасибо! Попробую!

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778

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


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