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

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

Автор: Elroir
Дата сообщения: 30.10.2006 17:31
turkmen

Цитата:
ping -n 1 192.168.1.1>Nul

замени на
Код: ping -n 1 192.168.1.1 | find "TTL=" >nul
Автор: sD31337
Дата сообщения: 30.10.2006 19:49
ViSiToR
спасибо огромное тебе, плиз еще если не трудно скажите как сделать чтобы при запуске винды расшаривались диски ?
Автор: Shish_kebab
Дата сообщения: 30.10.2006 20:09
Elroir
Нет никаких параметров не передаю, все имена файлов известны.

Цитата:
if %~z2 GTR %~z1 goto :EOF
copy /y %1 %2 > nul

Чего то я не допонял, у меня выдал сообщение ещё сравнить ? и на этом всё .....(копировать не стал)
Автор: Elroir
Дата сообщения: 30.10.2006 21:34
Shish_kebab

Цитата:
все имена файлов известны

Понял - тогда так:

Код:
@echo off
setlocal

rem Change to your file and folder names here
set file_name=file1
set fold_name=papka1

if not exist "%fold_name%\%file_name%" (
copy "%file_name%" %fold_name%\
goto :EOF
)
call :comp "%file_name%" "%fold_name%\%file_name%"
goto :EOF
:comp
if %~z2 GTR %~z1 goto :EOF
copy /y %1 %2
Автор: ViSiToR
Дата сообщения: 30.10.2006 23:35
sD31337

Цитата:
чтобы при запуске винды расшаривались диски ?

Что значит “расшаривались”?
Автор: Shish_kebab
Дата сообщения: 30.10.2006 23:37

Цитата:
%~z2

Это и есть размер второго файла ?
Автор: Elroir
Дата сообщения: 30.10.2006 23:46
Shish_kebab
Да. %2 для :comp - это, в данном случае, papka1\file1, a модификатор ~z дает его размер.
Автор: vzbzdnov
Дата сообщения: 31.10.2006 04:17

Цитата:
Как отделить "зёрна от плевел" - т.е. нужные книги от всего остального?
2) Что проверять на "свежесть" - архивы или файлы в архивах?

Опс! Сорри. Книги имеют расширение либо .txt, либо .doc, либо вообще не имеют. Картинки jpg, bmp или gif. Желательно оставить последний по времени файл. RAR с этим легко справляется - override older
Автор: student123
Дата сообщения: 31.10.2006 14:08
Доброго времени суток,
помогите с очень простым вопросом... хотелось бы в *.bat использовать wildcardы, в которые включены не только * и ?, а подставлять символы из определенного набора или использовать любую цифру....указание в [abc] символов не помогает. Подскажите как использовать такие wildcardы?
Автор: Dobrii
Дата сообщения: 31.10.2006 14:28
Как получить имя текущего пользователя и вырезать из него первые три буквы?
Батник такой
net use y: \\server\start
start y:\prog.exe /username

так вот /username это первые три буквы от имени пользователя.
Автор: ViSiToR
Дата сообщения: 31.10.2006 16:34
Dobrii

Цитата:
Как получить имя текущего пользователя и вырезать из него первые три буквы?



Код: net use y: \\server\start
start y:\prog.exe /%username:~3%
Автор: sD31337
Дата сообщения: 31.10.2006 21:19
ViSiToR
извените нсли непонятно написал
ну кароче как сделать чтобы команда net share 123=c:\ прописывалась в риестор и при входе в винду открывался общий доступ к диску с: , и еще маленький вопрос
как поставить приаритеты выполения команд например
1.mkdir
2.net share
3..... и т.д.
Автор: Elroir
Дата сообщения: 31.10.2006 21:30
Dobrii

Цитата:
/username это первые три буквы от имени пользователя.

Почти так, как написал ViSiToR, только он понял слово "вырезать", как "удалить из имени".

Код:
start y:\prog.exe /%username:~0,3%
Автор: ViSiToR
Дата сообщения: 31.10.2006 23:07
sD31337

Цитата:
как сделать чтобы команда net share 123=c:\ прописывалась в риестор


Примерно так:


Код: Reg Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /f /v "NetShare" /t "REG_SZ" /d "%windir%\system32\cmd.exe net share 123=c:\\"
Автор: Elroir
Дата сообщения: 31.10.2006 23:38
student123

Цитата:
подставлять символы из определенного набора

Средствами операционной системы - никак. Встроенной поддержки регулярных выражений нет.


Добавлено:
ViSiToR

Цитата:
просто не обратил внимание

Я так и понял
Автор: w8er
Дата сообщения: 01.11.2006 07:00
добрый день
не поскажите текст бат файла который бы делал следующее :
есть 2 разных компьютера на которых программа лежит в разных местах
1) c:\sys\111\prog.exe
2) c:\program files\111\prog.exe
хотелось бы чтобы при запуске бат файла он проверял наличие первого пути и если есть таковой то запускал бы оттуда + закрывался сам, а если нет проверял второй путь ( естественно если по обоих путей не существует батник должен просто закрыться )
Автор: Elroir
Дата сообщения: 01.11.2006 10:26
w8er

Код:
@echo off
if exist c:\sys\111\prog.exe (
c:\sys\111\prog.exe
goto :EOF
)
if exist "c:\program files\111\prog.exe" "c:\program files\111\prog.exe"
Автор: liberator
Дата сообщения: 01.11.2006 10:51
Парни, помогите кто нибудь решить следующую задачу...Алгоритм вроде простой, но блин я запарился его в батнике реализовать-жопа просто...Работа с датой:
Задача:Дана начальная дата, "пробежаться" от начальной до текущей даты увеличивая день с шагом один день.
Алгоритм
1.Сохраняем реальную(текущую) дату 01.11.06
2.Задаем дату от которой нужно будет пробежаться по циклу. допустим 29.10.06
3.Создаём промежуточную переменную и приравниваем её к реальной дате 01.11.06
3.Делаем текущую дату равной начальной 29.10.06
4.Вот дальше загвоздка...точнее две, как сделать цикл дат, и как их сравнивать?
Сравниваем дату, если текущая дата<реальной, то день++
5.Устанавливаем изменённую на 1 день дату.
Автор: Nagual
Дата сообщения: 01.11.2006 18:09
Хай люди!
Такая задача: в локальной сети необходимо найти определенный мак-адрес сервера, исходя их этого получить его ip-адрес и выставить на локальной рабочей станции этот ip-адрес как проски сервер по умолчанию.
Для чего нужно? У сервера локальный ip -- данамический, и рабочие станции частенько его теряют. Каждый раз сообщать свой ip всем раб станциям довольно муторно, хотелось как то автоматизировать... Спасибо.
Автор: Elroir
Дата сообщения: 01.11.2006 19:53
Nagual
Каким образом это касается темы
Цитата:
Задачи на bat-файлах
?
Автор: w8er
Дата сообщения: 01.11.2006 20:01
Elroir Огромное спасибо ... проверю сегодня в одном месте
ну и завтра с утра на втором компьтере
Автор: sD31337
Дата сообщения: 01.11.2006 20:36
Elroir
спасибо тебе большое за то что откликаешся на мои вопросы )
Автор: Nagual
Дата сообщения: 01.11.2006 20:51
Elroir

Цитата:
Nagual
Каким образом это касается темы
Цитата:Задачи на bat-файлах

?

К чему этот вопрос?
Автор: sD31337
Дата сообщения: 01.11.2006 20:51
мне нада вывести окошко на экран как это можно сделать при помощи bat ? я делаю так
echo mesaga=msgbox ("zagolovok" ,80, "tekst okna")>msg.vbs
start msg.vbs
есть ли другие способы ? и еще как ставить задержу а то у меня не получается
пример:
@echo off
echo mesaga=msgbox ("zagolovok" ,80, "tekst okna")>msg.vbs
start msg.vbs
del msg.vbs


задача мне нужно чтобы после запуска файла msg.vbs он был удален у меня не получается его удалить потамучто если последняя строка del msg.bat выполняется окно не выводится
Автор: Elroir
Дата сообщения: 01.11.2006 21:45
Nagual
Вопрос был к тому, что тебе нужно решить вопрос нахождения MAC-а и IP адреса, а здесь топик по командным файлам. Если же ты знаешь как это сделать, но нужна помощь в написание батника - тогда напиши как ты это делаешь.
P.S Если я чего-то понял неправильно - извини.

sD31337

Цитата:
спасибо тебе большое за то что откликаешся на мои вопросы

Пожалуйста

Цитата:
вывести окошко на экран

Что-бы окошко появлялось, а только потом удалялся файл, запускай так:

Код: start /wait msg.vbs
Автор: Nagual
Дата сообщения: 01.11.2006 22:59
Elroir
Если бы я знал как это делается, я бы сюда не писал.
Может несколько расплывчато описал задачу?
Попробую еще раз.
Есть сервер в сети. Известен только его мак-адрес.
Нужно: Определить по этому маку текущий ip этого сервера (так как ip динамический и меняется довольно часто) и прописать этот ip адрес в настройках прокси сервера локальной машины (рабочей станции) в настройках "Свойств Обозревателя".
Сделать это командным сценарием думаю можно.
Примерно думаю, как это можно сделать: командой getmac получить мак сервака по сети, далее по маку определить его ip, далее ipconfig, netsh и тд для локального изменения настройки прокси сервера на тот сервер, чей мак-адрес известен.
Если бы знал как это все связать и написать я бы сюда не обращался, а написал бы сам, так что вопрос, типа ты сюда зашел или нет, вовсе не в тему...
Автор: ViSiToR
Дата сообщения: 01.11.2006 23:35
sD31337

Цитата:
как ставить задержу

Можно ещё так попробовать (чтобы окно батника не висело до нажатия на ОК в msgbox):


Код: @echo off
echo mesaga=msgbox ("zagolovok" ,80, "tekst okna")>msg.vbs
start wscript msg.vbs
ping -n 2 localhost > nul
del msg.vbs
Автор: Elroir
Дата сообщения: 02.11.2006 00:46
Nagual
Имя прокси-сервера известно? Оно не меняется? Какой порт у прокси?
Автор: vzbzdnov
Дата сообщения: 02.11.2006 04:00
Я свою задачу сделал так. Но мне не нравится. Надо запускать два батника #Loop и #Update. Кромк того. пока не додумал, куда всунуть перекодировку.
Посоветуйте, как переделать
-----------#Loop.bat--------
@echo off
cls
If /I x%4 EQU x goto err
if not exist %1 goto err
if not exist %2 goto err
if not exist %3 goto err
if not exist %4 goto err
if not exist %4\tmp md %4\tmp
for /D %%I in (%1\*) do @one %2 %3 %4 "%%~fI" "%%~nxI"
rd %4\tmp
goto end
:err
echo Usage #Loop "In Dir" "Out Dir" "Log Dir" "tmp Dir"
:end
----------One.bat-----------
@echo off
rem %1 is out dir
rem %2 is log dir
rem %3 is tmp dir
rem %4 is input path
rem %5 is input subdir
If x%5==x goto err
@del /q %3\tmp\*.*
"c:\Program Files\WinRAR\WinRAR.exe" E -ibck -o+ -cl -inul -ed -ilog%2\%5.inp %4\*.zip %3\tmp
@if exist %3\tmp\*.diz del %3\tmp\*.diz > nul
@if exist %3\tmp\*.jpg del %3\tmp\*.jpg > nul
@if exist %3\tmp\*.jpeg del %3\tmp\*.jpeg > nul
@if exist %3\tmp\*.gif del %3\tmp\*.gif > nul
@if exist %3\tmp\comment*.* del %3\tmp\comment*.* > nul
@if exist %3\tmp\* echo created %1\%5.zip
@if exist %3\tmp\* "c:\Program Files\WinRAR\WinRAR.exe" A -ibck -afzip -cl -ep -ep1 -inul -ed -ilog%2\%5.out %1\%5.zip %3\tmp\*.*
goto end
:err
echo Usage #Loop "In Dir" "Out Dir" "Log Dir" "tmp Dir"
:end
----------------#Update.bat-----------
@echo off
cls
if x%2==x goto err
if /I x%3 NEQ x goto err
for /R %1 %%I in (*) do @match %2 "%%~nI" "%%~nxI" "%%~tzI" "%%~dpI"
goto end
:err
echo Syntax #UPDATE "To dir" "From dir"
:end
--------------match.bat---------------
@echo off
rem %1 is from dir
rem %2 is file name only
rem %3 is file name and extention
rem %4 is file date and size
rem %5 is file full path
if x%5==x goto err
for /R %1 %%I in (%2.*) do if /I "%%~nxI" EQU %3 (if exist "%%I" (if /I "%%~tzI" NEQ %4 echo copy "%%I" %5))
for /R %1 %%I in (%2.*) do if /I "%%~nxI" EQU %3 (if exist "%%I" (if /I "%%~tzI" NEQ %4 copy "%%I" %5))
goto end
:err
echo Must be called from #UPDATE "To dir" "From dir"
:end
----------------
Автор: Nordwig
Дата сообщения: 02.11.2006 09:01
Уважаемые мудрецы, есть проблемка с написанием одного скрипта. Что-то я недопонимаю. Суть в от в чем. К примеру, есть auoexec.bat d 98, надо его переписать, допустим в файл с расширением .bak. И не просто переписать, но и вставить определенную строку в определенное место. Вставляю, но почему-то знак "=" заменяеться на пробел. В другом файле, в котором много пробелом (подстрок) не все строки пишуться, тока до пробела. Что не так делаю? Мой код:
в качестве параметра используються имя файла, число строки, в которую надо вставить нужную строку и сама строка в двойных ковычках. Система ХР

@echo off
@set dep=
@set nam=
@set kol=
@set str=
@set name=
@set dep=0
@set dat=%date%
@set tim=%time%
@set nam=%1
@set kol=%2
@set str=%3
@set name=%nam:~0,-4%.bak
@set str=%str:~1,-1%
@echo rem Дата изменения ,-3% > %name%
for /f "usebackq delims=," %%I in (%nam%) do call :re %%I
GoTo :EOF
:re
@set /a dep +=1
@echo %dep%
@if %dep% EQU %kol% @echo %str% >> %name%
@echo %1 >> %name%

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Вернуть библиотеку АТМ (поддержка шрифтов Type 1)


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