Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)

Модерирует : gyra, Maz

Widok (19-11-2007 12:08): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118

   

KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Командная строка, батники\сценарии (bat, cmd)
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Задачи на bat-файлах 4
 
Полезные ссылки:
· Cmd. Описание от разработчиков
· Урок bat-аники (для начинающих)
· Набор GNU утилит для win32
· Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· cmdow — изменение параметров и видимости дос-окна
· blat — отправка почты из консоли
· Справка по командам в виде Html
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Пример - получение и обработка списка пользователей
 
 
Старая версия первого сообщения

Всего записей: 11448 | Зарегистр. 12-10-2001 | Отправлено: 04:28 24-09-2002 | Исправлено: Elroir, 19:35 11-09-2007
zayakin

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maza Faka
гуд!

Всего записей: 8 | Зарегистр. 06-06-2007 | Отправлено: 15:57 08-06-2007
snetch



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Допустим у меня есть текст:
 
Посл. сообщение: korleon
          TV бардак / TV: The Movie (2006) DVDRip  
    13     dix    799    9th December 2006 - 4:32
Посл. сообщение: Gua
          Вне игры / Comeback Season (2006) DVDRip  
    15     zheka64    1 391    8th December 2006 - 17:18
Посл. сообщение: Cka3
          Страх и трепет / Fear and Trembling (2003) DVDRip  
    16     Septic_Flesh    863    7th December 2006 - 13:05

Мне нужно чтобы к примеру в отдельный txtихи в этом же поудалялись все лишние строки (время, имена тех кто постил и т.д.).Т.е. просто чтобы остались нижеуказанные строки. И, сели это возможно, поменять рус. и англ местами, рус. текст взять в скобки (Fear and Trembling (Страх и трепет)).
Спасибо за помощ!

Всего записей: 232 | Зарегистр. 20-10-2003 | Отправлено: 22:31 11-06-2007 | Исправлено: snetch, 22:34 11-06-2007
newden



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сорь за тупой вопрос.
 
Как заставить баттник запускать программу и сразу закрываться, а не ждать завершения этой программы?

Всего записей: 212 | Зарегистр. 01-03-2004 | Отправлено: 22:52 11-06-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
newden

Код:
start program.exe

 
Добавлено:
snetch

Цитата:
Т.е. просто чтобы остались нижеуказанные строки. И, сели это возможно, поменять рус. и англ местами, рус. текст взять в скобки (Fear and Trembling (Страх и трепет))


Код:
 
@echo off
setlocal enabledelayedexpansion
chcp 1251>nul
set "text=movies.txt"
set "file=movies_names.txt"
set "process=false"
for /f "usebackq tokens=1,2 delims=/(" %%a in ("%text%") do (
if !process!==true (
set "movie="
call :show %%b^^^(%%a^^^)
set "process=false"
)
if "%%~na"=="Посл" set "process=true"
)
goto :eof
:show
if "%1"=="" (echo %movie%>>"%file%") else (
set "movie=%movie% %1"
shift
goto show
)
 

movies.txt - меняешь на свой файл с текстом
movies_names.txt - меняешь на имя файла, в который будут записаны результаты

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 22:56 11-06-2007 | Исправлено: Elroir, 23:15 11-06-2007
mistik26

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброе время ,необходима помощь в написании батника который мог бы запустить копирование   файлов на удаленный файлсервер который требует ауторизации при подключении.

Всего записей: 23 | Зарегистр. 09-06-2007 | Отправлено: 00:57 12-06-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mistik26
Ты напиши, как ты это делаешь вручную, а мы подумаем, как это автоматизировать

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 01:26 12-06-2007 | Исправлено: Elroir, 01:27 12-06-2007
Maza Faka



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Elroir

Цитата:
@echo off  
setlocal enabledelayedexpansion  
chcp 1251>nul  
set "text=movies.txt"  
set "file=movies_names.txt"  
set "process=false"  
for /f "usebackq tokens=1,2 delims=/(" %%a in ("%text%") do (  
if !process!==true (  
set "movie="  
call :show %%b^^^(%%a^^^)  
set "process=false"  
)  
if "%%~na"=="Посл" set "process=true"  
)  
goto :eof  
:show  
if "%1"=="" (echo %movie%>>"%file%") else (  
set "movie=%movie% %1"  
shift  
goto show  
)

 
Красиво! Но можно попроще:

Код:
 
@Echo off
chcp 1251>nul
for /f "tokens=*" %%a in ('type movies.txt ^| find "/"') do for /f "delims=/( tokens=1,2" %%b in ("%%a") do echo %%c (%%b)>> list.txt
 

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:18 12-06-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maza Faka

Цитата:
Но можно попроще

Действительно. Чего-то я не додумал    

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 11:10 12-06-2007
prankster

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
помогите написать пакетный файл, с помощью которого можно бы было настроить сетевое подключение наподобие этого:
 
netsh interface ip set address name="LAN" source=static addr=192.168.10.158 mask=255.255.254.0
netsh interface ip set address name="LAN" gateway=192.168.10.1 gwmetric=0
netsh interface ip set dns name="LAN" source=static addr=1.2.3.1 register=PRIMARY
netsh interface ip set wins name="LAN" source=static addr=none
 
но чтобы можно было вводить ip адрес и основной шлюз с клавиатуры

Всего записей: 69 | Зарегистр. 06-11-2005 | Отправлено: 13:00 12-06-2007
Maza Faka



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
prankster

Код:
 
@Echo off
:begin
set /p "IP=Enter your IP-address "
set /p "gateway=Enter your gateway"
if not defined IP goto begin
if not defined gateway goto begin
 
netsh interface ip set address name="LAN" source=static addr=%IP% mask=255.255.254.0
netsh interface ip set address name="LAN" gateway=%gateway% gwmetric=0
netsh interface ip set dns name="LAN" source=static addr=1.2.3.1 register=PRIMARY
netsh interface ip set wins name="LAN" source=static addr=none
 

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 14:38 12-06-2007 | Исправлено: Maza Faka, 14:41 12-06-2007
mistik26

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir Самое примитивное ето то как делают секретарши по протоколу http,
в броузере . http://192.168.0.254, после етого выскакивает окно с просбой ввести  юзверь и пароль ,если авторизация успешная открываеться окно  сетевого диска.

Всего записей: 23 | Зарегистр. 09-06-2007 | Отправлено: 00:27 13-06-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mistik26
Насколько я понимаю, существует некий список файлов, которые надо переписать.
Можно воспользоваться утилитами wget или curl для передачи файлов. Я не помню точно синтаксис этих утилит - либо посмотри справку по ним, либо спроси здесь, на форуме, в соответствующих топиках в Программах.
Если список находится в файле list.txt, тогда (видимо) будет работать такой код:

Код:
 
@echo off
for /f %%a in (list.txt) do (
curl -T -u username:password "%%a" http://192.168.0.254/Folder
)
 

Опять же - я не уверен в правильности строчки curl - надо проверять.
В процессе работы вместо "%%a" в команду будет подставляться имя файла из списка.

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 03:07 13-06-2007
moonkir

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Код:
@ECHO OFF
 
:Extract
echo.
echo                        -=Распаковка обновлений=-
echo.
cd msu
For %%F In ("*.msu") Do Call :Ext %%F
goto Exit
:Ext
echo Распаковывается обновление %1 ...  
call ..\tools\servicing\expand -F:* "%1" "..\Cab" > nul
::Удаление лишних файлов
del /f /q "..\Cab\*.xml" > nul
del /f /q "..\Cab\*.txt" > nul
del /f /q "..\Cab\WSUSSCAN.cab" > nul
GoTo :EOF
 
:Exit
exit

 
Задача проверять есть ли уже такое распакованое обновление (не распаковывая).
И спрашивать заменить/пропустить/заменить все
Распаковываемый *.msu и конечный *.cab имеют одинаковое названия но разные расширения файлов.

Всего записей: 287 | Зарегистр. 04-11-2006 | Отправлено: 15:12 13-06-2007
Maza Faka



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
moonkir

Цитата:
спрашивать заменить/пропустить/заменить все

Например имеется папка с распакованными обновлениями d:\update, распаковываешь .cab-архив во временную папку, а потом копируешь в папку d:\update с запросом подтверждения на перезапись существующего файла.

Код:
 
md %temp%\tmp_dir
expand test.cab -f:*.* %temp%\tmp_dir
copy /-y %temp%\tmp_dir d:\update
rd /s /q %temp%\tmp_dir
 

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 16:58 13-06-2007
moonkir

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Maza Faka
А без распаковки никак ?

Всего записей: 287 | Зарегистр. 04-11-2006 | Отправлено: 17:29 13-06-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
moonkir
Я не знаком с форматом .msu, поэтому вопрос - там внутри обязательно есть одноименный .cab файл? Он там единственный .cab?

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 18:21 13-06-2007
Maza Faka



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
moonkir

Цитата:
А без распаковки никак ?

Можно и без распаковки:

Код:
 
@Echo off
set output=d:\update
setlocal enabledelayedexpansion
for %%c in (*.cab) do (
for /f "skip=2 tokens=2 delims=: " %%a in ('expand -d "%%c"') do (
if exist %output%\%%a (
 set /p choose=%%a is exist! Overwrite[o], skip[s], overwrite all[a]) else (
   expand %%c -f:%%a %output%)
 
if /i !choose!==o expand %%c -f:%%a %output% & set choose=
if /i !choose!==a call :all "%%c" & goto :eof
)
)
 
goto :eof
 
:all
expand %1 -f:*.* %output%
 

Батник кидаешь в папку с "cab" архивами, выделенный путь меняешь на свой

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 18:26 13-06-2007 | Исправлено: Maza Faka, 18:56 13-06-2007
moonkir

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Elroir Всегда есть одноименный .cab  
WSUSSCAN.cab
.txt (описание каба)
.xml (сценарий установки, как я понял)
 
Они все удаляются так как не нужны мне.

Код:
::Удаление лишних файлов  
del /f /q "..\Cab\*.xml" > nul  
del /f /q "..\Cab\*.txt" > nul  
del /f /q "..\Cab\WSUSSCAN.cab" > nul

 
 
 
Добавлено:
Maza Faka эээ
Может я не так задал суть вопроса, но там распаковываються msu, а не cab...
Вопрос в том что бы не распаковывать зря msu если уже есть такой конечный файл...
 
 
Добавлено:

Код:
expand -d "%%c"

 
где %%с у нас равна *.cab
Как я понимаю, но мы то распаковываем msu, а не cab

Всего записей: 287 | Зарегистр. 04-11-2006 | Отправлено: 18:31 13-06-2007 | Исправлено: moonkir, 18:35 13-06-2007
Maza Faka



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
moonkir

Цитата:
Может я не так задал суть вопроса, но там распаковываються msu, а не cab

Никогда не сталкивался с "msu"-файлами, поэтому не знаю, как можно просмотреть их содержимое не распаковывая их, если знаешь, как, то подскажи.

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 19:02 13-06-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
moonkir

Код:
 
@ECHO OFF  
setlocal enabledelayedexpansion
:Extract  
echo.  
echo                        -=Распаковка обновлений=-  
echo.  
cd msu  
For %%F In ("*.msu") Do Call :Ext %%F  
goto Exit  
:Ext  
echo Распаковывается обновление %1 ...
if defined updall goto continue
if exist  "..\Cab\%~n1.cab" (
echo Update already exists in target directory
set /p choice=Overwrite(o),Skip(s),Owerwrite All(a)?
if "!choice:~0,1!"=="o" goto continue
if "!choice:~0,1!"=="a" (set "updall=true" & goto continue)
goto :EOF  
)
:continue
call ..\tools\servicing\expand -F:* "%1" "..\Cab" > nul  
::Удаление лишних файлов  
del /f /q "..\Cab\*.xml" > nul  
del /f /q "..\Cab\*.txt" > nul  
del /f /q "..\Cab\WSUSSCAN.cab" > nul  
GoTo :EOF  
 
:Exit  
exit  
 

Что-то вроде этого. Я не проверял код, так как не с чем экспериментировать

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:04 13-06-2007
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Widok (19-11-2007 12:08): лимит страниц. продолжаем здесь


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru