Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd)

Автор: bomzzz
Дата сообщения: 08.11.2009 17:25
мне понятно че ему надо - просто сделать такое. возится неохота.
Автор: yavig4
Дата сообщения: 08.11.2009 22:56
Не, экзешник не трогать. тоько выпонять в батнике с параметром, а вот резуьтат - куды б в переменную в батнике сохранять и сравнивать с некоторым значением..

Добавлено:
А че дого? Что-то типа:
@echo off
st:set /p arg =<c:\sourse.txt
start"" "prog.exe arg" = arg1
if arg1="123456789" goto st
Автор: Maqentaer
Дата сообщения: 09.11.2009 06:50
очень важно знать, куда у тебя программа возвращает результат.
stdout (на экран), errorlevel (код ошибки выхода программы) или куда-то еще?

притом что, если помимо результата, там есть лишние строки, то нужен пример этого результата.

вот тебе пример, если программа возвращает в stdout только результат одной строкой:

Код: @echo off
for /f "delims=" %%a in (sourse.txt) do (
    for /f "delims=" %%i in ('prog.exe "%%a"') do (
        if "%%i" == "123456789" (
            rem Делаем что-то
        )
    )
)
Автор: yavig4
Дата сообщения: 09.11.2009 12:28
Возвращает стандартно, на экран (stdout) , тогда в "rem Деаем что-то" мне надо параметр "%%а" загнать в "sourse1.txt" (это еси "да" в if"%%i" == "123456789", а еси нет - продожать вытаскивать параметры из sourse.txt и так до конца файа sourse.txt

Добавлено:
Ну, то и есть - прога выдает резуьтат одной строкой типа 001122 (вооще, препод екзешник по математике впер, че-то типа зафуденых циков с хреновскими кривыми), я бы все резко ускоко...
Автор: Maqentaer
Дата сообщения: 09.11.2009 15:30

Цитата:
тогда в "rem Деаем что-то" мне надо параметр "%%а" загнать в "sourse1.txt"


Код: @echo off
del sourse1.txt
for /f "delims=" %%a in (sourse.txt) do (
for /f "delims=" %%i in ('prog.exe "%%a"') do (
if "%%i" == "123456789" (
echo.%%a>>sourse1.txt
)
)
)
Автор: yavig4
Дата сообщения: 09.11.2009 16:12
СПС
Щас попробую!
Автор: GhoolVandal
Дата сообщения: 09.11.2009 16:13
Как в батнике обработать список папок?

Грубо говоря есть переодически меняющиеся количество папок, и есть батник, обрабатывающий содержимое этих папок.

Надо запускать его для каждой из этих папок отдельно.

список папок можно брать из реестра, можно получать "dir /ad /b > list.txt"


пока что я как только узнаю о новых папках правлю батник руками, но это заморочено
Автор: gjf
Дата сообщения: 09.11.2009 18:23
Ребята, то ли лыжи не едут.... Короче, хочу создать в реестре раздел с параметром по умолчанию. Пробую:

Код: reg add "HKEY_CURRENT_USER\Software\ABCD" /d trial
Автор: AndreusB
Дата сообщения: 09.11.2009 23:50
gjf
1. Reg-файл:

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf]
@="@SYS:DoesNotExist"

2. Из батника: regedit...
Автор: JohnSilver182
Дата сообщения: 10.11.2009 06:40
А можно батником проверить ,
IF Приложение НЕ запущено then запустить

Автор: Smitis
Дата сообщения: 10.11.2009 10:24
gjf

Цитата:
Ребята, то ли лыжи не едут.... Короче, хочу создать в реестре раздел с параметром по умолчанию.

reg add /?
- ключ /ve
Автор: gjf
Дата сообщения: 10.11.2009 16:20
AndreusB
Это к инсталлятору ещё и кусок в виде reg-файла цеплять? Неэстетично.
Smitis
Так создастся пустой параметр по умолчанию. В моём случае нужно создать раздел со значением. То есть так:

Неужели невозможно единой командой?
Автор: 01MDM
Дата сообщения: 10.11.2009 16:40
gjf

reg add hklm\software\ABCD /ve /d "ABCD"
Автор: Sunnych
Дата сообщения: 11.11.2009 15:42
пытаюсь собрать с сетки ipconfig /all
есть cmdшник
[no]net use F: \\192.168.10.13\C$ /USER:admin pass
echo Workstation: 192.168.10.13 > 192.168.10.13.txt
F:\windows\system32\ipconfig.exe /all >> 192.168.10.13.txt
net use F: /delete[/no]
в конечном файле я получаю информацию своих сетевых интерфейсов, подскажите как получить в файл информацию о сетевых интерфейсах друг. компа
Автор: savvato
Дата сообщения: 11.11.2009 16:06
Добрый день уважаемые форумчане, извините что пишу может быть не в той теме. Как скопировать файлы с заменой в ситемные папки Windows. Конкретно интересует папка %WINDIR%/ehome . Как я понимаю надо забрать у system права на Администратора. Делал с помощью cacls и subinacl не помогает ... В безопасном режиме все ок копируеться ,но задача сделать это в обычном режиме при первом запуске с помощью батника. Ось Windows XP PRO rus с интегрированным eng медиацентром .В %WINDIR%/ehome хочу закинуть локализированые файлы для Медиацентра.
Автор: 01MDM
Дата сообщения: 11.11.2009 16:07
Sunnych
смотри в сторону:

Код:
wmic /node:\\192.168.10.13 nicconfig get /?
Автор: Sunnych
Дата сообщения: 11.11.2009 16:24
01MDM

Цитата:
wmic /node:\\192.168.10.13 nicconfig get /?

пишет "Неверный глобальный ключ."
Автор: 01MDM
Дата сообщения: 11.11.2009 17:42
Sunnych
Я проверить не могу. Попробуй "/node:xxx.xxx.0.1" или /node:"xxx.xxx.0.1"
Автор: ZolotnikOV
Дата сообщения: 11.11.2009 23:46
такой вопрос возник:
написал батник, скомпилил его через Quick Batch File Compiler. в результате Avira пишет что это вирус. на вирустотале показало 19% что вирус. как исправить такое неподобство)
спасибо.
Автор: 01MDM
Дата сообщения: 12.11.2009 10:15
ZolotnikOV
Попробуй другую программу.
Автор: ZolotnikOV
Дата сообщения: 12.11.2009 11:04
01MDM
Вы быkv правы. использовал
ExeScript – компилятор VBS, BAT, JS, WSF и WSH скриптов
результат на вирустотал - 0%
спасибо вам большое)
Автор: Maqentaer
Дата сообщения: 12.11.2009 20:22
вот, я написал небольшой скрип, который переписывает только уникальные (не повторяющиеся) строки из input.txt в output.txt
может кому пригодится

Код: @echo off
del output.txt 2>nul
for /f "delims=" %%a in (input.txt) do (
    if not "%%a" == "" (
        call :write_if_one "%%a"
    )
)
goto :eof

:write_if_one
if not exist output.txt (
    echo.%~1>output.txt
) else (
    findstr /b /e /c:"%~1" output.txt>nul
    if errorlevel == 1 echo.%~1>>output.txt
)
Автор: William Gates
Дата сообщения: 13.11.2009 16:18
Задача для знатоков. Есть директория А в которой много поддиректорий 1,2,3 и т.д. и в них файлики с одним и тем же именем, напр. file.zip. Нужно скопировать каждый такой файлик в каталог В, в соответствующую поддиректорию (если файл был в каталоге 1, он и должен быть скопирован в каталог с именем 1), далее в директорию с текущей датой. Например, файл из каталога A\1\file.zip должен быть в каталоге В\1\13.11.2009\file.zip. Заранее благодарю.
Автор: ZolotnikOV
Дата сообщения: 14.11.2009 18:57
ExeScript 3.0
предлагаю добавить в шапку как альтернативу Quick Batch File Compiler.(ИМХО лучшую)
правда прога достаточно часто обновляется уже версия 3.0.9.0, а с утра еще была 3.0.8.0.
Автор: s1nfrompvl
Дата сообщения: 15.11.2009 08:38
друзья, не подскажите с моей маленькой задачей..
пишу скрипт для скачивания flv видео с локального сервиса.
скачать html страницу я могу.. wget или curl поможет..
wget -N http://local.video/rh7ot2dott75
теперь хотелось вытащить название видео, оно хранится между тегами <title> и </title> и в Unicode. =(.
тут я попытался через findstr
findstr "<title>" rh7ot2dott75 > temp

получил в temp
    <title>&#9576;Т&#9576;&#9557;&#9576;&#9508;&#9576;&#9569;&#9576;&#9563; &#9576;в&#9576;&#9569;&#9572;Б&#9572;В</title>

конечно через chcp 65001 можно посмотреть текст, но как вытащить название видео между тегами я не понял. =(. и еще нужно из UTF-8 сделать в win1251... пытался через xcode, у меня не получилось.

и еще.. ссылка на страницу имеет вид http://local.video/rh7ot2dott75, а ссылка на видео http://file.local.video/v/rh7ot2dott75
т.е. из url нужно взять последнюю часть и сформировать ссылку на видео..

ну и в итоге собрать все в кучу..

wget -N http://file.local.video/v/rh7ot2dott75 -O %FileName%.flv

з.ы. еще нужно в имени видео исключить символы, которые нельзя использовать в названии файла.. например / \ : * ? " < > |
тут я подумал можно сохранить ссылку в файл, а потом через sed заменить все ненужные символы, а потом через wget -i загрузить его.
з.ы.ы. я не прошу писать скрипт за меня.. я рад хотя бы намеками и частичными решениями как можно реализовать данный скрипт..
Автор: mugil_cephalus
Дата сообщения: 15.11.2009 11:11
s1nfrompvl
вот для этой задачи
Цитата:
Напомню второй вопрос, есть текстовый файл, в нем строка выглядит так: <a href="https://login.site.com/app/signup/confirm.cgi?u=name1&uid=2074563"><font face="verdana,helvetica" color="#FF6905" style="font-size: 11px">https://login.site.com/app/signup/confirm.cgi?u=name1&uid=2074563</font></a><br><br> (все написано в одну строку, напоминаю, нужно оставить только 1 url, сайт не меняется, меняются только name1 и 2074563, причем name1 может быть больше 5 символов. Текстовые файлы распологаются, допустим в папке C:\test2. Можно ли что нибудь сделать не прибегая к сторонним утилитам?

я писал такой код

Цитата:
Код:echo on
for %%A in (C:\test2\*.txt) do call:_1 %%A
set var1=
set var2=
goto :eof

:_1
for /f "tokens=3 delims=: " %%i in ('"type %1"') do set "var1=%%i"
set "var2=%var1:~0,-7%"
0>nul 1>C:\test2\%~n1_.txt set /p="https:%var2%" && del /q %1 && ren C:\test2\%~n1_.txt %~nx1
goto :eof

для себя, думаю, сможешь подправить
p.s.
если не будет работать, можешь с одним амперсандом - ...set /p="https:%var2%" & del /q %1 && ren....

Добавлено:
p.p.s
сразу пиши
Цитата:
с одним амперсандом - ...set /p="https:%var2%" & del /q %1 && ren....
- с двумя не работает


Добавлено:
s1nfrompvl

Цитата:
и еще нужно из UTF-8 сделать в win1251... пытался через xcode, у меня не получилось.

Перекодировщик кириллицы - http://2cyr.com/decode/?lang=ru
Автор: s1nfrompvl
Дата сообщения: 15.11.2009 14:58
mugil_cephalus

Цитата:
Перекодировщик кириллицы - http://2cyr.com/decode/?lang=ru

это как я понял онлайн кодировщик..
хотя этот вопрос решен с помощью iconv.. хз как я про него забыл..

насчет скрипта - спасибо.. сейчас посмотрю его и постараюсь адаптировать под себя..

позже:
в общем отделил я строку с тегом с отдельный файл.. конвертнул кодировку и попытался отделить имя видео которое между тегами <title> и </title> через скрипт:

Код: echo off
call:_1 temp
set var1=
set var2=
goto :eof

:_1
for /f "tokens=2 delims=>" %%i in ('"type %1"') do set "var1=%%i"
set "var2=%var1:~0,-7%"
0>nul 1>%~n1_.txt set /p="%var2%" && del /q %1 && ren %~n1_.txt %~nx1
goto :eof
Автор: mugil_cephalus
Дата сообщения: 15.11.2009 16:03
s1nfrompvl
я тоже не шибко много гонял код, но заметил, что:
1) в участке do set "var1=%%i" - variable может задаться в value и со спецсимволами (< >), но value/%%i не нравиться только "=" (что понятно), напрмер, set "var1=href="https......................." при "вырывании " из html-кода
2) если делать процедуру - do call:... "%%i" - то спецсимволы в %%i у меня не тащились в процедуру как arg %1, даже с кавычками - "%%i" (что тоже понятно)
поэтому конструкция сделана с "bypass'om" спецсимволов - сначала впихивал в variable (благо "заглатывала"), а далее обработка (вырезание из var спецсимволов < >)

да, еще, сразу сделай один & - ...set /p="https:%var2%" & del /q %1 && ren.... - на всякий случай, - потому как мне вот что сказали
Цитата:
Цитата:у меня к тебе вопрос чисто теоретический - почему в коде не работает удвоенный амперсанд (как теория это объясняет?) ?
теория объяяняет просто - set /p var=text выдает errorlevel 1 при нулевом вводе, т.е. 0<nul set /p =text - всегда НЕуспешно выполненная команда.
Автор: s1nfrompvl
Дата сообщения: 15.11.2009 16:38
mugil_cephalus
код переделал.. скрипт написал.. все работает.. ^__^.. спасибо за помощь и моральную поддержку..

сейчас доделаю замены спецсимволом и надо сделать отлов веб ошибок от wget и можно продавать..
Автор: Sergey_AV
Дата сообщения: 16.11.2009 12:24
Подскажите, плииз - есть скрипт: http://forum.ru-board.com/topic.cgi?forum=5&topic=29819&start=1142&limit=1&m=1#1
как бы избавиться от консольного окошка при его работе? Видел здесь что-то подобное при помощи ни то nircmd, ни то чего-то похожего, но не могу найти...

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: SAS.Планета (часть 2)


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