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

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

Автор: Nagual
Дата сообщения: 13.08.2008 14:28
mdma81
echo quit|куда
Автор: mdma81
Дата сообщения: 13.08.2008 16:12
Nagual
спасибо за помощь, хотя често сказать в итоге получился следующий вариант:
@ping -n 1 194.67.57.26 && exit || ftp -s:c:\2ftp.txt 10.253.0.12
а в файлике 2ftp.txt две строчки: anonymous
quit
Немного коряво, через файл-то, но через echo у меня передать команды серверу так и не получилось, может быть нужны более подробные инструкции
Автор: contrafack
Дата сообщения: 14.08.2008 09:28
Подскажите пожалуйся, мне надо автоматизировать процесс архивирования:
Встренный планировшик не подходит, т.к. по разному должен выполнятся архивация.
значит задача такая:
Есть папка 777, которая находится в C:\Base
при запуске BAT-ника должен архивироватся 777 папка и хранится в папке D:\rezerv. Имя файла желательно совпал с датой архивацией
Автор: tolyn77
Дата сообщения: 14.08.2008 11:02
01MDM


Код:
@echo off
chcp 1251 1>nul
if "%~1"=="" echo No Parameters && goto:eof
for /f "tokens=*" %%i in ('dir /b /s /a %1') do (
echo "%%~di","%%~pi","%%~ni","%%~xi","%%~zi","%%~ti" 1>>list.txt
)
Автор: 01MDM
Дата сообщения: 14.08.2008 12:59
tolyn77
Попробуй такой вариант, самому проверить на реальной шаре нет возможности


Код:
@echo off
setlocal

chcp 1251 1>nul
if "%~1"=="" echo No Parameters && goto:eof

for /f "tokens=*" %%i in ('dir /b /s /a %1') do (
    for /f "tokens=1-3* delims=\" %%i in ("%%~pi") do set fp="%%i","%%j","%%k\%%l"
    call:write "%%~nxi" "%%~zi" "%%~ti"
)
goto:eof
:write
echo %fp%,%1,%2,%3 1>>list.txt
Автор: Nagual
Дата сообщения: 14.08.2008 14:35
По личному запросу одного из участников форума выкладываю на всякий случай и в общак
Сценарий для удаления концевых пробелов, а также и пустых строк
В сценарии используется никсовая утилита sed
На выходе получаем файл в кодировке ansi(1251)
Кому надо, цикл для работы с параметрами, дописывайте сами

Код:
@echo off
chcp 1251>nul
title
Удаление концевых пробелов и пустых строк
set inp=orig.txt
set out=edit.txt
if exist %inp% sed -r -e "/^$/d" %inp%>__._&&sed -r -e "s/[ \t]*$//" __._>__.-&&more __.->%out%&&del/q __.?
Автор: antik861
Дата сообщения: 14.08.2008 14:49
Извиняюсь , если уже было. Просто тяжело все 60 страниц пролистать. Киньте ссылку на доки по bat-файлам.
Автор: Nagual
Дата сообщения: 14.08.2008 15:00
http://www.intuit.ru/department/os/compromtwin/3/
http://www.google.ru/search?complete=1&hl=ru&newwindow=1&q=%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D1%8B%D0%B9+%D1%81%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%B8%D0%B9&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru&aq=f
http://www.google.ru/search?complete=1&hl=ru&newwindow=1&q=%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D1%8B%D0%B9+%D1%84%D0%B0%D0%B9%D0%BB&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru&aq=f
http://www.google.ru/search?complete=1&hl=ru&newwindow=1&q=%D0%B1%D0%B0%D1%82+%D1%84%D0%B0%D0%B9%D0%BB&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru&aq=f
Автор: tolyn77
Дата сообщения: 15.08.2008 10:48
01MDM
спасибо
Автор: winhex
Дата сообщения: 15.08.2008 12:33
подскажите, нужно чтобы при запуске батника выводился запрос на ввод имени файла и передавался как параметр программе, запускаемой из батника
Автор: Elroir
Дата сообщения: 15.08.2008 12:41
winhex

Цитата:
нужно чтобы при запуске батника выводился запрос на ввод имени файла и передавался как параметр программе, запускаемой из батника


Код:
@echo off
set /p "name=Please enter file name: "
rem ====================
program.exe %name%
rem или
start "" program.exe %name%
rem ====================

Автор: contrafack
Дата сообщения: 15.08.2008 14:06

Цитата:
Подскажите пожалуйся, мне надо автоматизировать процесс архивирования:
Встренный планировшик не подходит, т.к. по разному должен выполнятся архивация.
значит задача такая:
Есть папка 777, которая находится в C:\Base
при запуске BAT-ника должен архивироватся 777 папка и хранится в папке D:\rezerv. Имя файла желательно совпал с датой архивацией


Может все таки подскажете ?
Автор: VitRom
Дата сообщения: 15.08.2008 16:06
contrafack
http://segfault.kiev.ua/smart-questions-ru.html#before
Автор: MsdLamer
Дата сообщения: 16.08.2008 10:49
Здравствуйте мастера. Есть вопрос по работе с FTP.
написал батничек который выкладывает файлы на FTP каждый вечер, но появилась не большая сложность. Как проверить доступен ли ФТП, мало ли что .... ...(ping отключен) Так вот если доступен тогда скопировать на него файлы, а если не доступен тогда выдать сообщение что Все плохо. Спасибо.

Текст батника1:
ftp.exe -n -s:cl_toftp.ftp
____________________
Текст батника2:
open FTP.ru
user
pasword
prompt
binary
hash
cd Otchet\
mput C:\1\*.txt
quit

Автор: Shift7
Дата сообщения: 16.08.2008 12:11
Искренне Извеняюсь......скорее всего вопрос тупой...но мало ли....возможно ли чтоб при закритии батника выполнялась команда, например запуск файла? или бред полный?


Добавлено:
Вопрос 2 можно ли через батник сделать "не убиваемый процесс" - я понимаю что не убиваемых не бывает, но хоть чтото можно. Если да напишите примерчик Плизз. Я только столкнулся с этим делом, поэтому просьба не ругатся сильно.
Заранее благодарен...
Автор: vvnet
Дата сообщения: 16.08.2008 16:19
Подскажите как реализовать такое:
Есть два файла одинакового размера (512байт), необходимо 4 байта из одного файла заменить 4 байтами из другого файла, смещение одинаковое. Это нужно реализовать в DOS.
Спасибо.
Автор: problematique
Дата сообщения: 17.08.2008 22:04
Доброго времени суток!
Прошу Вашей помощи.
Эти четыре задания нужно проделать в FARе. Не могли ли бы вы мне помочь?

Используя программы arj.exe и tar.exe, написать .bat файл, преобразующий все файлы текущего каталога из формата .tgz в формат .arj.

Используя программы coder.exe, написать .bat файл, преобразующий все .html файлы текущего каталога из формата Win CP1251 в формат KOI-8.

Написать .bat файл, который в командной строке Windows создает на сервере ECON директорию TEMP, внутри которой создает еще одну директорию TEMP1. Далее копирует в эти каталоги все файлы с расширением .txt из папки "C:\Program Files\Far". Затем в директории TEMP1 переименовывает файлы с расширением .txt в файлы с тем же именем, но расширением .bak. После чего в каталоге TEMP объединяет все файлы с расширением .txt в один файл all.txt, а исходные .txt файлы удаляет.

В графической оболочке Windows создать на сервере ECON директорию WIN, внутри которой создать еще одну директорию WIN1. Далее скопировать в эти каталоги все файлы с расширением .txt из папки "C:\Program Files\Far". Затем в директории WIN1 переименовать файлы с расширением .txt в файлы с тем же именем, но расширением .bak. Повторить то же самое, только с созданием каталогов FAR и FAR1 соотвественно в текстовой оболочке FAR Manager.
Автор: Cyril Konst
Дата сообщения: 18.08.2008 09:12
Подскажите, как сделать вложенный циклы из For /f ?

Код: for /f ''tokens=1" %%i in ('for /f ''tokens=3" %%i in (fined.tmp) do query user %%i') do echo %%i
Автор: NIKZZZZ
Дата сообщения: 18.08.2008 09:19
Cyril Konst

Цитата:
Подскажите, как сделать вложенный циклы из For

Можно попробовать так:

Код: for /f ''tokens=1" %%i in ('cmd /c for /f ''tokens=3" %%i in (fined.tmp) do query user %%i') do echo %%i
Автор: Cyril Konst
Дата сообщения: 18.08.2008 09:46
NIKZZZZ
Нет, не работает.
Может есть другой вариант решения проблеммы?:
Нужно получить из файла 3-е слово, передать её в команду query user, но вывести только первое слово из результата.
(Нам по номеру сессии нужно получить логин пользователя)
Автор: NIKZZZZ
Дата сообщения: 18.08.2008 10:00
Cyril Konst
Тогда можно попробовать так (test.bat):


Код: if "%1"=="flag" goto _1
for /f ''tokens=1" %%i in ('call test.bat flag') do echo %%i
....
goto :eof

:_1
for /f ''tokens=3" %%i in (fined.tmp) do query user %%i
goto :eof
Автор: Cyril Konst
Дата сообщения: 18.08.2008 10:19
NIKZZZZ
У ж тогда проще через файл сделать:

Код: for /f ''tokens=3" %%i in (fined.tmp) do query user %%i >>fined2.tmp
for /f ''tokens=1" %%i in (fined2.tmp) do echo %%i
del fined2.tmp
Автор: king_stiven
Дата сообщения: 18.08.2008 13:19
Cyril Konst

Код: for /f "tokens=3" %%c in (fined.tmp) do (
for /f "tokens=1" %%d in ('query user %%c') do echo %%d
pause
goto :eof
)
Автор: Cyril Konst
Дата сообщения: 18.08.2008 16:16
king_stiven
Спасибо большое. Заработало. 3 слова в файле обязательно будут ибо это вывод команды tasklist. Иначе программа на этот код не должна попасть.
Нужно сделать теперь это разруливание.
Т.е. обход этого кода, если:
tasklist | find "процесс"
выдаёт пустую строку.
Или как вариант:
tasklist /fi "имя образа eq процесс" /nh
PS. Тока команды:
pause
goto :eof
не нужны.
Автор: king_stiven
Дата сообщения: 18.08.2008 17:16

Цитата:
Нужно сделать теперь это разруливание.
Т.е. обход этого кода, если:
tasklist | find "процесс"
выдаёт пустую строку.
Или как вариант:
tasklist /fi "имя образа eq процесс" /nh

Не понял, поподробней.

Если правильно понял...

Код: tasklist | find "процесс"
if not errorlevel 1 (
for /f "tokens=3" %%c in (fined.tmp) do (
for /f "tokens=1" %%d in ('query user %%c') do echo %%d
)
)
Автор: Cyril Konst
Дата сообщения: 18.08.2008 18:23
king_stiven
Да, спасибо, именно так.
Тока первая строка должна быть tasklist | find "процесс">fined.tmp
А весь скрипт нужен для вывода логинов пользователей терминального сервера, у которых запущено определённое приложение "процесс".
Автор: Cyril Konst
Дата сообщения: 19.08.2008 08:24
Вопросик по передаче параметров a процедуры cmd-файлов

Код: for /L %%i in (1,1,5) do call:func %%i
goto:eof
:func
echo %%i
Автор: king_stiven
Дата сообщения: 19.08.2008 08:34
Cyril Konst
Потому что переменная %%i действует только в пределах первой строчки, надо так

Код: for /L %%i in (1,1,5) do call:proc %%i
goto:eof
roc
echo %1
Автор: NovaC
Дата сообщения: 19.08.2008 10:07
нужен bat файл который бы перебирал (с заданной степенью глубины) папки и файлы начиная с корня (или с заданной папки) определял размер (может и чего ещё по возможности) и сохранял инфу в txt файле. т.е. результат нужен приблизительно в таком виде :
C:\
C:\Documents and Settings 200 Mb
C:\Documents and Settings\All Users\ 50 Mb
C:\Documents and Settings\UserName\ 150 Mb
..........................................................................
C:\Program Files\ 5 000 Mb
C:\Program Files\Common Files\ 500 Mb
..........................................................................
C:\WINDOWS\ 2 500 Mb
C:\WINDOWS\system32\ 1 300 Mb

и .т.д.
Если cmd не осиливает возможен вариант на VBS. Подскажите с чего начать ? и где искать ?
Автор: pgofman2
Дата сообщения: 19.08.2008 10:34
Подскажите - почему не работает батник - проверяется доступность интернета путем пингования шлюза и двух днсов

Код:
set servername=
set router=
set dns1=
set dns2=

PING %router% | FIND "TTL=" >NUL
IF ERRORLEVEL 1 GOTO router
goto Exit

:router
PING %dns1% | FIND "TTL=" >NUL
IF ERRORLEVEL 1 GOTO dns1
goto Exit

:nds1
PING %dns2% | FIND "TTL=" >NUL
IF ERRORLEVEL 1 GOTO reboot
goto Exit

:reboot
c:\windows\system32\shutdown.exe -r -f -m \\%servername% -t 60 -d up:125:1
goto Exit

:Exit

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Сброс пароля администратора


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