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

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

Автор: ponand
Дата сообщения: 13.01.2009 12:48
извеняюсь...
Автор: mirchik777
Дата сообщения: 13.01.2009 12:48
извеняюсь ...
Автор: ponand
Дата сообщения: 13.01.2009 12:51
извеняюсь...
Автор: mirchik777
Дата сообщения: 13.01.2009 12:54
Помогите, пожалуйста, с непосильной для меня задачей написания bat файла.
Напишу пример, чтоб было понятно:
Имеется папка с именем load, в этой папке есть другие папки, так вот у нужных мне файлов имена состоят из цифр длиной максимум в 3-и символа ("1" "3" "5" "54" "754" "127" и т.д.) и в каждой такой папке находится один файл, и мне бы хотелось, чтоб при запуске bat-ника все файлы копировались из папок (состоящих из цифр) в папку load, и после этого удалялись папки, из которых уже все скопировано.
Надеюсь, понятно объяснил, жду любого совета...
Автор: ponand
Дата сообщения: 13.01.2009 12:55
При установке программы копируется папка с бат файлами всех дисков с именами c.bat,b.bat,d.bat и т.д в них написано создать папку с именем с,b,d и т.д (в нужном месте) хотелосьбы чтобы каждый батник подключает одноименную папку к диску с таким же именем .
С помощью такого бат файла я получил список имен дисков и GUID дисков в тхт
@echo off
MOUNTVOL /L >C:\TEST1234.txt
а теперь не знаю как найдя нужное имя диска скопировать GUID из строчки выше в фаил имя_диска.bat
Автор: 01MDM
Дата сообщения: 13.01.2009 13:41
ponand
Переделай под свои нужды. Батник находит доступные диски и их точки подключения и выводит информацию в консоль. Внимание! Проверки на то, чем является диск нет, это может быть логический диск, флешка, cd и т.д.


Код:
@echo off
setlocal enabledelayedexpansion

for /f "tokens=*" %%i in ('mountvol ^| findstr "\\"') do call:set %%i
for /l %%i in (%guidNum%,-1,1) do (
    if defined disk_%%i (
        echo volume !guid_%%i! mounted on !disk_%%i!
    ) else (
        echo volume !guid_%%i! not mounted
    )
)
goto:eof

:set

echo %1 | findstr "\:" 1>nul && (
    set /a diskNum+=1
    set disk_!diskNum!=%1
)

echo %1 | findstr "\?" 1>nul && (
    set /a guidNum+=1
    set guid_!guidNum!=%1
)
Автор: qwesz
Дата сообщения: 13.01.2009 14:54
Подскажите плиз, можно ли автоматизировать батниками работу в telnet-сессии? Достало вручную вбивать одно и то же
Автор: ponand
Дата сообщения: 13.01.2009 15:11
Переделать не смагу знаний не хвотает!
Можите подправить?
Автор: atc58
Дата сообщения: 13.01.2009 16:13
Добрый день!

Подскажите пожалуйста как создать батник, который будет во все файлы с расширением html в текущей директории добавлять заданный мной заголовок и окончание?
Автор: 01MDM
Дата сообщения: 13.01.2009 19:12
ponand

Цитата:
Можете подправить?


Будет работать, если в системе установлен wmic и mountvol (в XP Home не работает) и есть администраторские привилегии.
Определяются разделы жесткого диска(ов), создаются папки с названием диска (С, D и т.д), соответствующие разделы монтируются в созданные папки:

Код:
@echo off
setlocal enabledelayedexpansion

set "wl=wmic logicaldisk"
for /f "skip=1" %%i in ('%wl% get caption') do call:check %%i
for /f "tokens=2,3 delims=_=" %%i in ('set logdisk_') do (
    set mountpoint=%%i
    set mountpoint=!mountpoint::\=!
    md !mountpoint!
    mountvol !mountpoint! %%j
)
goto:eof

:check
%wl% where caption="%1" get drivetype | findstr "3" 1>nul && call:mount %1
goto:eof

:mount
for /f %%i in ('mountvol ^| findstr "\\"') do (
    echo %%i | findstr "\?" 1>nul && set guid=%%i
    echo %%i | findstr "\:" 1>nul && set disk=%%i
    if %%i==%1\ set logdisk_!disk!=!guid!
)
if defined disk set disk=
Автор: ponand
Дата сообщения: 13.01.2009 20:21
За орфографию извиняюсь, Пишу со смарта,
скрипт сработал!
Большое спасибо!
Автор: dallas roma
Дата сообщения: 14.01.2009 04:17
Здраствуйте... Возможно ли такое решение задачи?
Из файла user.ini берётся информация:

Код: DisplayName=user_1
RxBytes=82232628
TxBytes=60895133
Cache=215.5
RxLastCacheBytes=8269383
DisplayName=user_2
RxBytes=43232834
TxBytes=15995543
Cache=674.2
RxLastCacheBytes=6329197
DisplayName=user_3
RxBytes=26632436
TxBytes=6394524
Cache=14.2
RxLastCacheBytes=3217197
Автор: GRom V
Дата сообщения: 14.01.2009 06:44
Люди подсобите кто нить....
Как овтоматизировать набор пароля при входе в Телнет:
Например батник типа:
telnet 192.192.192.192
дальше чтоб автоматом набрался логин и пароль
а то запаривает набирать постоянно....
????
Автор: Samec2009
Дата сообщения: 14.01.2009 08:40
подскажите как с помощью батника вытянуть на экран а потом в текстовый файл динамический айпишник который присваевает интернетпровайдер при реконекте
Автор: zmejg0rynych
Дата сообщения: 14.01.2009 09:36
Подскажите пожалуйста как написать батник, чтобы он удалял определённый файл в папке пользователя при запуске. Но не под конкретного пользователя а под любым именем, то есть из папки C:\Documents and Settings\любое имя пользователя (Вася или Петя)...
Автор: demon1981
Дата сообщения: 14.01.2009 09:49
Samec2009
chcp 1251
for /f "tokens=2 delims=:" %i in ('ipconfig ^| find /i "адрес"') do @echo %i>1.txt
Автор: MammothDEL
Дата сообщения: 14.01.2009 10:30
01MDM

Цитата:
Штатными средствами нельзя.


А какими нештатными средствами, для решения задачи, воспользоваться?
Автор: Elroir
Дата сообщения: 14.01.2009 10:50
GRom V
Встроенный telnet клиент не поддерживает автоматизацию. Воспользуйся сторонними утилитами для работы с telnet-ом.

zmejg0rynych

Код:
del "%USERPROFILE%\fileToDelete.txt"
Автор: macxxxxx
Дата сообщения: 14.01.2009 10:54
А можно ли отправить файл на почту без каких либо клиентов?
Автор: Elroir
Дата сообщения: 14.01.2009 11:18
macxxxxx
Нет. В любом случае, нужен хотя-бы консольный клиент.
Автор: atc58
Дата сообщения: 14.01.2009 11:24
Подскажите как вывести содержимое одного текстового файла в другой один к одному с сохранением форматирования и псевдографики?
Автор: macxxxxx
Дата сообщения: 14.01.2009 11:25
Elroir
а можешь подсказать как это сделать (консольный клиент)
Автор: Elroir
Дата сообщения: 14.01.2009 11:29
macxxxxx
В шапке, в разделе "Полезные утилиты", посмотри blat и smtpsend
На самом деле, можно, конечно, посылать команды SMTP через telnet. Тогда клиент не нужен. Но какие команды нужно посылать - я не знаю.

atc58

Код:
type 1.txt>>2.txt
Автор: CTrator
Дата сообщения: 14.01.2009 18:03
помогите ,нужно создать батник который ищет на трех дисках одинаковые файлы и выводит их, и если сможите то при выводе цифрой можно указать какой оставить , 1 2 или 3.....

Добавлено:
то есть
C:\1.txt 5kb (1)
D:\1.txt 1kb (2)
E:\1.txt 3kb (3)
Какие файлы оставить-? 2 3
Файлы под номерами: 1 были удалены

Чтото в этом роде
Был бы очень полезный
Автор: atc58
Дата сообщения: 14.01.2009 19:02
Elroir Спасибо.
Автор: Zakkazak
Дата сообщения: 14.01.2009 22:31

Код: [no]var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Run("f:\SOFTWARE\apps\clcl112_rus\CLCL.exe",0);[/no]
Автор: Nagual
Дата сообщения: 15.01.2009 11:58
dallas roma
Код [more=здесь]Код:
@echo off
setlocal enabledelayedexpansion
copy nul send_mobile.txt

for %%a in (DisplayName) do for /f "tokens=1,2 delims==" %%b in ('more user.ini^|findstr/b %%a') do set c=%%c
set
c=%c:~5%
:: max users="%c%"

for /f "tokens=1,2 delims==" %%a in (user.ini) do (set q=!q! %%b)
set q=%q:~1%
echo
main array="%q%"
echo.
for /l %%a in (1,1,%c%) do (
call:q
)
goto:eof

:q
set
/a c1+=1
set /a c2=%c1%*5-4
set /a c3=%c1%*5

echo array for tokens "%c2%-%c3%" from main array

for /f "tokens=%c2%-%c3%" %%a in ("%q%") do (
set e%c1%=%%a %%b %%c %%d %%e
set
DisplayName=%%a
set
RxBytes=%%b
set
TxBytes=%%c
set
Cache=%%d
set
RxLastCacheBytes=%%e
call:r
echo
.
)
goto:eof

:r
echo
DisplayName=%DisplayName%
echo
RxBytes=%RxBytes%
echo
TxBytes=%TxBytes%
echo
Cache=%Cache%
echo
RxLastCacheBytes=%RxLastCacheBytes%

for
/f "tokens=2 delims=:" %%a in ('clcc %TxBytes%/1048576*.25') do (
set out=%%a)
set out=%out: =%
echo out=%out%

for
/f "tokens=2 delims=:" %%a in ('clcc %RxLastCacheBytes%/1048576*.25') do (
set prox=%%a)
set prox=%prox: =%
echo prox=%prox%

for
/f "tokens=2 delims=:" %%a in ('clcc ^(%RxBytes%/1048576+%prox%+%out%^)*2.2') do (
set in=%%a)
set in=%in: =%
echo in=%in%

for
/f "tokens=2 delims=:" %%a in ('clcc %Cache%-%in%') do (
set Cache_in_out=%%a)
set Cache_in_out=%Cache_in_out: =%
echo Cache_in_out=%Cache_in_out%
echo
.
echo %DisplayName%=Cache_in_out ^(%Cache_in_out%^)...;
echo %DisplayName%=Cache_in_out ^(%Cache_in_out%^)...;>>send_mobile.txt[/more]
утилита clcc в шапке
точность расчётов проверяй сам

Добавлено:
Zakkazak
Код:
var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Run("f:\\SOFTWARE\\apps\\clcl112_rus\\CLCL.exe",0);

Добавлено:
можно еще короче
Код:
WScript.CreateObject('WScript.Shell').Run('f:\\SOFTWARE\\apps\\clcl112_rus\\CLCL',0)
Автор: demon1981
Дата сообщения: 15.01.2009 13:31
кто подскажет почему вот тут
[more]
@echo off
chcp 1251>nul
for /f "tokens=1,3 delims=    " %%d in ('reg query hkcu\Software\1c\1cv7\7.7\titles^|find /i "reg_sz"') do ( echo Base path:%%d
echo Basename: %%e
set word=%%e
echo Basename cyr: %word%
call :replace
echo basename in latin: %word%
call:maketime
echo Arhname: %word%%var1%.7z
echo.
ping 127.0.0>nul
)

rem reg query hkcu\Software\1c\1cv7\7.7\titles|find /i "reg_sz"
:replace
SET "word=%word:ж=zh%"
SET "word=%word:Ж=ZH%"
SET "word=%word:ц=ts%"
SET "word=%word:Ц=TS%"
SET "word=%word:ч=ch%"
SET "word=%word:Ч=CH%"
SET "word=%word:ш=sh%"
SET "word=%word:Ш=SH%"
SET "word=%word:щ=sch%"
SET "word=%word:Щ=SCH%"
SET "word=%word:ю=yu%"
SET "word=%word:Ю=YU%"
SET "word=%word:я=ya%"
SET "word=%word:Я=YA%"
SET "word=%word:а=a%"
SET "word=%word:б=b%"
SET "word=%word:в=v%"
SET "word=%word:г=g%"
SET "word=%word:д=d%"
SET "word=%word:е=e%"
SET "word=%word:ё=e%"
SET "word=%word:з=z%"
SET "word=%word:и=i%"
SET "word=%word:й=j%"
SET "word=%word:к=k%"
SET "word=%word:л=l%"
SET "word=%word:м=m%"
SET "word=%word:н=n%"
SET "word=%word:о=o%"
SET "word=%word:п=p%"
SET "word=%word:р=r%"
SET "word=%word:с=s%"
SET "word=%word:т=t%"
SET "word=%word:у=u%"
SET "word=%word:ф=f%"
SET "word=%word:х=h%"
SET "word=%word:ъ=`%"
SET "word=%word:ы=i%"
SET "word=%word:ь=`%"
SET "word=%word:э=e%"
SET "word=%word:А=A%"
SET "word=%word:Б=B%"
SET "word=%word:В=V%"
SET "word=%word:Г=G%"
SET "word=%word:Д=D%"
SET "word=%word:Е=E%"
SET "word=%word:Ё=E%"
SET "word=%word:З=Z%"
SET "word=%word:И=I%"
SET "word=%word:Й=J%"
SET "word=%word:К=K%"
SET "word=%word:Л=L%"
SET "word=%word:М=M%"
SET "word=%word:Н=N%"
SET "word=%word:О=O%"
SET "word=%word:П=P%"
SET "word=%word:Р=R%"
SET "word=%word:С=S%"
SET "word=%word:Т=T%"
SET "word=%word:У=U%"
SET "word=%word:Ф=F%"
SET "word=%word:Х=H%"
SET "word=%word:Ъ=`%"
SET "word=%word:Ы=I%"
SET "word=%word:Ь=`%"
SET "word=%word:Э=E%"
SET "word=%word: =_%"
exit /b
:maketime
for /f "tokens=1,2,3,4,5,6,7 delims=:." %%i in ("%date%.%time%") do set var1=%%k%%j%%i%%l%%m%%n%%o
echo ArchiveTime: %var1%
exit /b[/more]
выходит в первый раз как запускаешь скрипт вот такое

Код:
Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.

c:\script>1cbackup7z.bat
Base path: C:\1C\Копия PDS\
Basename: Информационная База #1
Basename cyr:
basename in latin:
ArchiveTime: 2009011514174256
Arhname: .7z

Base path: C:\1C\PDS\
Basename: ПДС
Basename cyr:
basename in latin:
ArchiveTime: 2009011514174562
Arhname: .7z


c:\script>
Автор: SAOPP
Дата сообщения: 15.01.2009 15:27
Ребят, подобное уже было по моему, но всё же, задачка такова: есть батник для ребута adsl модема, необходимо создать другой батник, который бы пинговал заданные адреса н-количество раз, если ответы есть, то просто выход, а в случае "не ответа" запускал выше упомянутый батник для ребута, можно такое реализовать? Заранее благодарен.
Автор: vu1tur
Дата сообщения: 15.01.2009 15:30
SAOPP
Ну вот же несколько страниц назад только спрашивали и отвечали.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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