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

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

Автор: mugil_cephalus
Дата сообщения: 15.11.2009 10:50
alexcoolmagic
есть команда clip - но она кажется есть только в resource kit
Автор: king_stiven
Дата сообщения: 15.11.2009 11:28
hifahif
ПНХ
Автор: mugil_cephalus
Дата сообщения: 15.11.2009 12:44
Ortios
у меня к тебе вопрос чисто теоретический - почему в коде не работает удвоенный амперсанд (как теория это объясняет?) ?
у меня нет в наличии батников (которые я использую) с подобной конструкцией (какие есть с for'om - у меня там процедуры), а на форуме я встречал и конструкции с &&, и с & (в цикле после do) - так и составил
вопрос снят
Автор: wolf0425
Дата сообщения: 15.11.2009 13:15

Цитата:
у меня к тебе вопрос чисто теоретический - почему в коде не работает удвоенный амперсанд (как теория это объясняет?) ?
теория объяяняет просто - set /p var=text выдает errorlevel 1 при нулевом вводе, т.е. 0<nul set /p =text - всегда НЕуспешно выполненная команда.
Автор: mugil_cephalus
Дата сообщения: 15.11.2009 13:21
wolf0425


Добавлено:
wolf0425
у тебя наверное есть win server 2003 reskit - там нету команды clip ? - читал про нее у staneka, но у меня win 5.1 + supporttools
Автор: soft111
Дата сообщения: 15.11.2009 14:57
Ortios

У меня все батники, написанные mugil_cephalus нормально работают в таком виде, в каком он мне предоставил их на форуме.
Автор: Ortios
Дата сообщения: 15.11.2009 17:40
soft111
Ну с mugil_cephalus вопрос прояснился, этот товарищ даже не тестирует то, что выкладывает здесь, вводя в заблуждение уважаемую публику и пытаясь превратить форум в некое подобие чата. Кстати, он де-факто признал, что оба кода которые он для вас написал неработоспособны в том виде, которые он представил здесь.
Теперь с вами. Вы действительно утверждаете, что в задаче по удалению пустой строки код на самом деле заходит на ветку выделенную крупным шрифтом do 0>nul 1>C:\test\%~n1.txt set /p="%%i" && del /q %1 && ren C:\test\%~n1_.txt C:\test\%~nx1 ,
тогда одно из трех, либо у вас стоит неизвестная операционная система, либо вы еще не запускали батник, либо вообще не читаете то, что написано на последних страницах топика.
Чур без обид.
Автор: mugil_cephalus
Дата сообщения: 15.11.2009 17:55
Ortios
интересный пассаж - сами перешли на метафоры:
Цитата:
И вообще, как раньше говорили старые механики, механизм должен работать не в принципе, а в кожухе.

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



Добавлено:
Ortios
хотя я и согласен с теоретическим дискурсом wolf0425
Цитата:
теория объяяняет просто - set /p var=text выдает errorlevel 1 при нулевом вводе, т.е. 0<nul set /p =text - всегда НЕуспешно выполненная команда.
вот у этого человека - http://forum.ru-board.com/topic.cgi?forum=5&bm=1&topic=29819&start=1340#11 - тоже работает с двумя &&:

Цитата:
Код: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 вопрос прояснился, этот товарищ даже не тестирует то, что выкладывает здесь, вводя в заблуждение уважаемую публику и пытаясь превратить форум в некое подобие чата. Кстати, он де-факто признал, что оба кода которые он для вас написал неработоспособны в том виде, которые он представил здесь.
- справедливость или отсутствие оной в подобных обвинениях в питие младенческой крови оставляю на суд форумчан
Автор: Ortios
Дата сообщения: 15.11.2009 19:04
mugil_cephalus

Цитата:
механизм должен работать не в принципе, а в кожухе.

Ну как тебе объяснить, вот некий двигатель в мастерской работает, вытаскиваешь пихаешь его в кожух, закрепляешь на машине - не работает, опять вынимаешь - опять работает, ставишь обратно - не работает. Так и у тебя: - тебе всем форумом помогали делать решение задачи, отладили тебе отдельные части кода, потом ты все собрал - выложил на форум и даже не удосужился протестировать и довести до ума код, т.е. проявил неуважение к тем людям, кто будет использовать твой код в своих задачах.
А ты
Цитата:
кожух у всех разный и на свой горб не напялишь
бред какой-то несешь.
Автор: mugil_cephalus
Дата сообщения: 15.11.2009 19:20
Ortios

Цитата:
Ну как тебе объяснить, вот некий двигатель в мастерской работает, вытаскиваешь пихаешь его в кожух, закрепляешь на машине - не работает, опять вынимаешь - опять работает, ставишь обратно - не работает

я только не пойму, где мне взять чужой кожух, или ты хочешь сказать, что все кожухи - одинаковые? Тогда у нас с тобой онтологические разногласия: именно моя убежденность в дифференцации кожухов мотивировала меня на трансфер окончательной кастомизации кода.

Цитата:
отладили тебе отдельные части кода

это верно про set /p?

Цитата:
И потом задачи, на выдергивание ссылок-URLов гораздо эффективнее делать SEDом. С помощью стандартных команд это полный изврат.

не припомню, где я оппонировал этому тезису
Автор: wolf0425
Дата сообщения: 15.11.2009 19:25
mugil_cephalus

Цитата:
вот у этого человека - http://forum.ru-board.com/topic.cgi?forum=5&bm=1&topic=29819&start=1340#11 - тоже работает с двумя &&:
вообще-то перед тем как говорить что у него "тоже работает" - проверь сначала это у себя

Желающих писать тут всякие бредовые советы, а потом отбрехиваться "вот ему надо - пусть он мое глюкало и тестирует, я очень занятой, у меня времени на это нет, поэтому пишу как умею" - тут всегда хватало, не нужно на них равняться.
Автор: king_stiven
Дата сообщения: 15.11.2009 19:25

Цитата:
трансфер окончательной кастомизации


Автор: mugil_cephalus
Дата сообщения: 15.11.2009 19:42
wolf0425

Цитата:
вообще-то перед тем как говорить что у него "тоже работает" - проверь сначала это у себя

говорить, что у него работает, я не могу - потому что чисто физически не наблюдал этого процесса , я лишь ретранслировал его слова, поэтому со всеми апелляциями не ко мне, а к нему
воссоздать его условия у себя - тоже не могу по сугубо объективным причинам

Цитата:
а потом отбрехиваться "вот ему надо - пусть он мое гюкало и тестирует, я очень занятой, у меня времени на это нет"

приведи ссылку, где я это писал. я выложил код - мне на чистом русском ответили:
Цитата:
У меня все батники, написанные mugil_cephalus нормально работают в таком виде, в каком он мне предоставил их на форуме.

Автор: mugil_cephalus
Дата сообщения: 16.11.2009 09:32
Ortios

Цитата:
И потом задачи, на выдергивание ссылок-URLов гораздо эффективнее делать SEDом. С помощью стандартных команд это полный изврат.



Цитата:
Напомню второй вопрос, есть текстовый файл, в нем строка выглядит так: <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. Можно ли что нибудь сделать не прибегая к сторонним утилитам?

http://forum.ru-board.com/topic.cgi?forum=62&topic=17154&start=1480#11
Автор: soft111
Дата сообщения: 16.11.2009 10:32
Ortios Операционная система 2003 server, батники я запускал иначе для чего бы я просил о помощи?
У меня работает конструкция как с одной & так и с двумя, разницы абсолютно никакой.
Автор: NIKZZZZ
Дата сообщения: 16.11.2009 10:47
mugil_cephalus

Цитата:
Можно ли что нибудь сделать не прибегая к сторонним утилитам?


Код: FOR /F "tokens=1 delims=^<^>" %%i in (file.txt) do set url=%%i
set url=%url:~7%
echo %url%
Автор: CYMar
Дата сообщения: 16.11.2009 10:53
Товарищи! Прошу помощи!
Необходимо после запуска системы открыть приложение, и после открытия данного приложения открыть одно из его окон (скорее всего по Hotkey F11).
Вот накидал скрипт на vbs

Код:
Option Explicit
Dim WshShell, theAzi
Set WshShell = WScript.CreateObject("WScript.Shell")
Set theAzi = WshShell.Exec("azi.exe")
WScript.Sleep 15000
WshShell.AppActivate theAzi.ProcessID
WshShell.SendKeys "{F11}"
Автор: mugil_cephalus
Дата сообщения: 16.11.2009 10:56
NIKZZZZ
вопрос по другой теме, - delims можно задать как символ " . А то у меня что-то не задавался (и даже так "tokens=1 delims=";" )

Добавлено:
CYMar
sendkeys часто "капризничает" - ты задавал свой вопрос здесь - Программирование "удобняшек" на VBScript http://forum.ru-board.com/topic.cgi?forum=33&bm=1&topic=1491#1
Автор: king_stiven
Дата сообщения: 16.11.2009 12:35
CYMar
утилита nircmdc эмулирует нажатие клавиш
Автор: BVV63
Дата сообщения: 16.11.2009 13:15
Подскажите, пожалуйста, как в конструкции for... in... do... грамотно работать с переменными. К примеру, если в командной строке выполнить команды

Set Letters=A
Set Letters=%Letters%B

то переменная %Letters% будет в результате иметь значение AB.
Но когда я выполняю

For %%A In (A B) Do Set %Letters%%%A

результатом будет B.
А ежели я удваиваю число знаков процента

For %%A In (A B) Do Set %%Letters%%%%A

результатом будет %Letters%B.
Как мне добиться того же результата, что и при работе в консоли? Заранее благодарен.
Автор: CYMar
Дата сообщения: 16.11.2009 13:19

Цитата:
утилита nircmdc эмулирует нажатие клавиш

Почитав про VBS понял, что там проблема не с отправкой символов (SendKeys), а с активацией приложения (AppActivate) в которое нужно отправить нажатия клавиш. К сожалению nircmdc не умеет выбирать нужного окна.
Автор: king_stiven
Дата сообщения: 16.11.2009 14:26

BVV63

Код: For %%A In (A B) Do (
set "Letters1=%%A"
call :hjk
)
goto :eof
:hjk
set Letters=%Letters%%Letters1%
Автор: wolf0425
Дата сообщения: 16.11.2009 14:34
BVV63

Цитата:
Подскажите, пожалуйста, как в конструкции for... in... do... грамотно работать с переменными. К примеру, если в командной строке выполнить команды
...
Но когда я выполняю
For %%A In (A B) Do Set %Letters%%%A
глюк-с, наверно ты хотел написать Set Letters=%Letters%%%A
так делать действительно нельзя из-за того что все %переменные% цикла развертывается в текст в момент начала обработки той строки, где стартует цикл.

Методов обхода этой проблемы я знаю два, оба со своими ограничениями:
переход на !переменные!
Код: setlocal enabledelayedexpansion
For %%A In (A B) Do Set Letters=!Letters!%%A
Автор: 01MDM
Дата сообщения: 16.11.2009 17:11
CYMar

Цитата:
К сожалению nircmdc не умеет выбирать нужного окна.

В справке к команде контекст "win" самый обширный.

Код:
nircmdc win <команда> <условия>
Автор: wolf0425
Дата сообщения: 16.11.2009 17:39
подскажите консольный архиватор, который понимает файл-список в ANSI кодировке
Очень желательно - бeсплатный.

Или способ отучить 7z ругаться на совпадение имен файлов при разных их путях в списке.
Автор: aLkoZaDr
Дата сообщения: 16.11.2009 21:10
суть задачи довольно проста ток я немугу её решить :

Нужно создать задачу компу которая бы запускала калькулятор(к примеру) каждые 5 минут ис под имени пользователя а не системы !


schtasks /create /ru "" /sc minute /mo 5 /tn "calc" /tr calc.exe
УСПЕХ. Запланированная задача "calc" была успешно создана.
задаёт процесс как системный и калькулятор не запускается хотя служба в диспечере висит! но сам калькулятор не запускает

schtasks /create /sc minute /mo 5 /tn "calc" /tr calc.exe
ПРЕДУПРЕЖДЕНИЕ. Запланированная задача "calc" была создана, однако не может выполняться, так как не удалось задать сведения об учетной записи.
если поставить галочку"выполнять только при выполненом входе в систему" то всё
работает ТАК КАК ЖЕ СДЕЛАТЬ ЧТОБЫ РАБОТАЛО СРАЗУ??

и 2-ое
при запуске СМД нужно чтобы сразу открывало свой интерфейс
(к примеру)

@echo off
mode con: cols=150 lines=32766
cls
ver
echo ===================================
echo %TIME%
echo ComputerName --= %COMPUTERNAME%
echo Operation sustem --= %OS%
echo UserName --= %USERNAME%
echo ===================================
title ________
prompt $d $_ $T $_ Common! Say you komand: $S $q $f $_ $S $S $S $S $S $S $S $S $S $S $S $S $S $S $S
color 1f

заранее thx
Автор: dSasha
Дата сообщения: 16.11.2009 23:59

Код: Microsoft Windows [Version 6.1.7100]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

C:\Windows\system32>curl -k -s -I -ssl3 "https://yartelecom.yaroslavl.ru/www/UCP.nsf/Saldo?openagent&z=22&sc=4&d=&ct=181000369894&cp=0"
HTTP/1.1 302 Found
Server: Lotus-Domino/5.0.8
Date: Mon, 16 Nov 2009 21:33:26 GMT
Location: https://yartelecom.yaroslavl.ru/www/UCP.nsf/saldo?OpenForm&ct=181000369894&vo=&so=15,03&cp=0&sc=4&z=22&de=
Connection: close
Content-Type: text/html
Автор: wolf0425
Дата сообщения: 17.11.2009 02:03
dSasha так пойдет?

Код: type 1.txt | findstr /b Location: | sed -r "s/^.+&ct=([0-9]+).+&so=([0-9][0-9],[0-9][0-9])&.+$/\1 \2/g"
Автор: BVV63
Дата сообщения: 17.11.2009 05:25
king_stiven
wolf0425

Цитата:
глюк-с, наверно ты хотел написать Set Letters=%Letters%%%A

Действительно, глюк-с. Очепятка .
Благодарю, господа, за помощь. Я остановился на последнем методе, предложенным wolf0425 (для тривиального случая), усё заработало. Хотя я метод и не очень понимаю... Разве можно так использовать команду Call?

Цитата:
переход на !переменные!

Никогда про такие не слышал. Не подскажете, где можно почитать про них?
Автор: king_stiven
Дата сообщения: 17.11.2009 07:59
BVV63

Цитата:
Никогда про такие не слышал. Не подскажете, где можно почитать про них?

В шапке

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778

Предыдущая тема: во вкладке автозагрузка


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