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

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

Автор: Bacdec
Дата сообщения: 21.07.2007 18:04
Подскажите как заставить этот BATnik запускатся в скрытом режиме
[more]ф@ECHO OFF
TITLE Yom's SA-MP server restarter
COLOR 09

SET option_log=0

SET folder=restarter
SET file_1=server_log.txt
SET file_2=%folder%\server.log
SET file_3=%folder%\restarter.log
SET file_4=%folder%\reset.reg
SET server=samp-server.exe
SET count=0
SET regkey="HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug"



IF NOT EXIST %server% (

    COLOR 0C
    ECHO %server% was not found!
    ECHO Press any key to exit.
    PAUSE > NUL
    GOTO EOF
)



IF NOT EXIST %folder% MD %folder%



IF NOT EXIST %file_4% (

    REG EXPORT %regkey% %file_4% > NUL
    REG ADD %regkey% /V Auto /D 1 /F > NUL
    REG ADD %regkey% /V Debugger /D 0 /F > NUL
)



:START

    CLS & ECHO.

    SET hh=%time:~0,2%

    IF %hh% LSS 10 SET hh=0%time:~1,1%

    SET msg=[%date%][%hh%:%time:~3,5%] Server

    IF %count% EQU 0 (SET msg=%msg% started.) ELSE SET msg=%msg% restarted [%count%x].

    ECHO %msg% & ECHO %msg%>> %file_3%

    IF %option_log% EQU 1 (

        ECHO %msg%>> %file_2%
        TYPE %file_1%>> %file_2%
        FOR /L %%i IN (1,1,4) DO ECHO.>> %file_2%
    )

    GOTO NEXT



:NEXT

    SET /A count+=1
    CALL %server%
    GOTO START



:EOF[/more]
Автор: Elroir
Дата сообщения: 21.07.2007 18:11
Bacdec
В шапке, в разделе "Полезные утилиты" - утилита hstart
Автор: Nagual
Дата сообщения: 23.07.2007 01:40
такая задача
есть около 500 html файлов
в каждом из них 21 строка имеет такой формат
<TD ALIGN="Left" STYLE="color:#000000;"><B>ACURA</B></TD>
нужно выковырять имя ACURA и заменить им название файла
имена естественно имеют разную длину, например, ALFA ROMEO, ...
Решаемо?
Автор: Elroir
Дата сообщения: 23.07.2007 02:04
Nagual
Попробуй так:

Код:
@echo off
for %%a in (*.html) do call :process "%%a"
goto :EOF
:process
for /f "usebackq skip=20 tokens=3 delims=<>" %%b in (%1) do ren %1 "%%b%~x1" & goto :EOF
Автор: gap5
Дата сообщения: 23.07.2007 11:07
Столкнулся с такой проблемой:

Файл 1.bat запускает другие *.bat файлы, например:
c:\first.bat
c:\second.bat
c:\third.bat

Все работает нормально, но если second.bat имеет такой код:

if exist "%windir%\folder" goto quit
mkdir "%windir%\folder"
:quit

То после его отработки следующий скрипт (third.bat) даже не запускается.
Автор: Elroir
Дата сообщения: 23.07.2007 11:14
gap5
Обычно, если надо из батника запустить другой батник - используется команда call:

Код: call c:\first.bat
call c:\second.bat
call c:\third.bat
Автор: gap5
Дата сообщения: 23.07.2007 11:39
Elroir
Действительно, call помог.
Странно, но до этого не было никаких проблем даже с прямым указанием на внешние bat файлы, все работало. Видимо есть какой-то таймаут, после которого выполнение прекращается (без call)?

Кстати, а если необходимо запускать vbs скрипты, тоже можно использовать call (для надежности)?

call c:\first.bat
call c:\script.vbs
call c:\third.bat

Автор: Elroir
Дата сообщения: 23.07.2007 11:49
gap5

Цитата:
Видимо есть какой-то таймаут, после которого выполнение прекращается (без call)?

Таймаута нет.

Цитата:
а если необходимо запускать vbs скрипты, тоже можно использовать call (для надежности)?

Можно, но не нужно. Команда call предназначена только для вызова других командных файлов.
Автор: vmix
Дата сообщения: 23.07.2007 12:15
Elroir

Цитата:
change_fs должен заменить все пути из списка сделанного в директории loc на что?
Заменить x:\loc\ на букву какого диска?


На ту же что была в rem_fs.txt, например:

REM
rem_fs.cmd
rem_fs.txt
c:\dir1\file1
c:\dir2\file2

rem_fs.txt пересылаем через ФТП на LOC

LOC
make_fs.cmd (rem_fs.txt)
x:\loc\dir1\file1
x:\loc\dir2\file2

работа по перемещению файлов.. dir1\file1 <-> dir2\file2

loc_fs.cmd
loc_fs.txt
x:\loc\dir1\file2
x:\loc\dir2\file1

loc_fs.txt пересылаем через ФТП на REM

REM
change_fs.cmd (loc_fs.txt)
типа (move c:\dir1\file1 c:\dir2\
move c:\dir2\file2 c:\dir1\)

в результате..

rem_fs.cmd
rem_fs.txt
c:\dir1\file2
c:\dir2\file1

Как реализовать change_fs.cmd ?
Автор: Nagual
Дата сообщения: 23.07.2007 12:41
Elroir
респект, сработало
Автор: ROMANEX
Дата сообщения: 23.07.2007 13:50
Здравствуйте. Есть несколько папок на диске. В них куча файлов и подпапок. Нужен скрипт который делал бэкап файлов по маске и срохранял на другом диске. Пытался с помошью rar, но никак не получалось выбрать по маске файлы. Заранее благодарен.
Автор: Elroir
Дата сообщения: 23.07.2007 14:15
ROMANEX

Цитата:
Пытался с помошью rar, но никак не получалось выбрать по маске файлы. Заранее благодарен.

Архивируем все файлы с расширением txt в текущей директории и всех ее поддиректориях:

Код: rar a -r test.rar *.txt
Автор: vserd
Дата сообщения: 23.07.2007 16:54
ROMANEX
если файлов несколько создаешь файлик в котором перечисляеш маски/имена файлов
и запускаешь в командной строке rar параметры @fileListNames

All
У кго нибудь работает sbs2.com???
Если да, вышлите мне на vserd(at)inbox.ru
Автор: vmix
Дата сообщения: 23.07.2007 17:57
Elroir

С change_fs.cmd пока ничего?
Автор: Elroir
Дата сообщения: 23.07.2007 18:46
vmix
Извини - времени нет. Позже.
Автор: Evgeniy15
Дата сообщения: 24.07.2007 09:57
Всем Привет,

Никак не поборю SCHTASKS . Может кто поможет

Запускаю

[SCHTASKS /Create /S CompName /U DomName\Administrator /p DomAdminPassword /ru Administrator@CompName /rp CompAdminPassword /SC weekly /D WED /st 12:01:00 /TN Clean /TR c:\program]

Получаю

WARNING: The Scheduled task "Clean" has been created, but may not run because the account information could not be set.

Что я не так делаю?

Заранее благодарю,
Автор: 01MDM
Дата сообщения: 24.07.2007 11:13
Попробуй
/ru \\CompName\Administrator
Автор: KapralBel
Дата сообщения: 24.07.2007 11:40
Evgeniy15
1. Русские буквы встречаются в строке?
2. Запуск из батничка?
Автор: Elroir
Дата сообщения: 24.07.2007 14:19
vmix
Задачка оказалась нетривиальная...
change_fs.cmd:

Код:
@echo off
setlocal enabledelayedexpansion
:: First part - changing the paths
set "loc_dir=c:\loc"
set "num_of_letters=6"
del /q /f "chfs_tmp.txt" 2>nul
for /f "tokens=*" %%a in (loc_fs.txt) do (
set "fpath=%%~dpa"
set "fpath=!fpath:~%num_of_letters%!"
for /f "tokens=*" %%b in ('type rem_fs.txt ^| find /i "!fpath!"') do set "rpath=%%~dpb"
set "file_path=!rpath!%%~nxa"
echo !file_path!>>chfs_tmp.txt
)
:: Second part - moving files
for /f "tokens=*" %%a in (rem_fs.txt) do (
for /f "tokens=*" %%b in ('type chfs_tmp.txt ^| find /i "%%~nxa"') do set "move_to=%%~dpb"
echo move "%%a" "!move_to!"
)
del /q /f "chfs_tmp.txt" 2>nul
Автор: KapralBel
Дата сообщения: 24.07.2007 14:34
Elroir
Боюсь что задача достаточно не тривиальная, и лучше ничего не сделаешь
Автор: de1eted
Дата сообщения: 24.07.2007 15:03
ЛЮДИ помогите плиз расставить кавычки:

Код: set mirpath=%USERPROFILE%\Application data\MirandaJ\nul
IF NOT EXIST %mirpath%
xcopy \\server\soft\mirandaJ %USERPROFILE%\Application data\MirandaJ /s
Автор: NIKZZZZ
Дата сообщения: 24.07.2007 16:05

Цитата:
решение для задачки vmix-а


Код: echo off
setlocal enabledelayedexpansion
set "loc_dir=c:\loc"
set /a num_of_letters=0
set tmp=%loc_dir%
:_1
if "%tmp%"=="" goto _2
set /a num_of_letters=num_of_letters+1
set tmp=%tmp:~1%
goto _1
:_2

dir /s /b /a:-d %loc_dir% > struct_fs.txt

for /f "tokens=*" %%a in (rem_fs.txt) do (
for /f "tokens=*" %%b in ('type struct_fs.txt ^| find /i "%%~nxa"') do (
set tmp=%%~dpb
set tmp=!tmp:~%num_of_letters%!
move %%a %%~da!tmp!
)
)
del struct_fs.txt
Автор: Evgeniy15
Дата сообщения: 24.07.2007 17:40
Всуе на английском. Пробовал из батника и из командной строки - результат одинаковый.

/ru \\CompName\Administrator - выдает ошибку - WARNING: The Scheduled task "Clean" has been created, but may not run because the account information could not be set.
Автор: ILAVWSEX
Дата сообщения: 24.07.2007 17:59
Вопрос как скопировать с пом. батфайла ярлык в дирректорию C:\Documents and Settings\Default User\Рабочий стол ?
Толи пробелы мешают толи что......
?
Автор: wolf0425
Дата сообщения: 24.07.2007 18:16
ILAVWSEX если писал как здесь, без кавычек - то действительно пробелы виноваты.
cope file.ext "C:\Documents and Settings\Default User\Рабочий стол"

только Default User\Рабочий стол - это для ещё ни разу не логинившихся юзеров, точно это имел в виду, а не "All Users\Рабочий стол"
Автор: Maza Faka
Дата сообщения: 24.07.2007 18:50
ILAVWSEX
Не забудь про смену кодировки для корректной работы с русскими именами

Код:
CHCP 1251> nul
Автор: Elroir
Дата сообщения: 24.07.2007 19:17
de1eted

Цитата:
-е что пришло в голову: каждое перемещение записывать в батник

насколько я понял - это просто невозможно. Перемещения производятся во время работы пользователя.

Цитата:
а если автоматом - то что делать если файлы с одинаковым названием?

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

NIKZZZZ
Да. Так получается быстрее.
В строчке move надо оба параметра взять в кавычки - иначе, если в путях будут пробелы...
Автор: vmix
Дата сообщения: 24.07.2007 19:58
Elroir
Да, регистрировать перемещения файлов в батнике не получится

Файлы с одинаковыми названиями - это вполне возможно. Может быть в структуре файлы делать не 0-ой длины, а записывать в них контрольную сумму или оригинальный путь и в change_fs определять по содержимому, откуда пришел файлик..

Благодарю Elroir, de1eted и NIKZZZZ !
Автор: JohnRD
Дата сообщения: 24.07.2007 22:09
подскажите пожалуйста
как поднять регистр у $COMPUTERNAME$

reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v Hostname /t REG_SZ /d $COMPUTERNAME$ /f

тоесть если COMPUTERNAME=ivanov-ab или Ivanov-AB а нужно IVANOV-AB

спасибо
Автор: AdletFromKZ
Дата сообщения: 24.07.2007 22:21
Ребята у меня вопрос, могу ли я поставить новый проц. без переустановки винды.Сейчас 1,7Селерон, поставлю 2,8Селерон Д?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Автозагрузка терминальной сессии


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