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

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

Автор: Nikoderiko
Дата сообщения: 12.12.2010 17:56
Дано:
Папки C:/1 и C:/2
папка C:/1 пустая.
В папке C:/2 куча файлов с разными именами.
Вопрос: как в папке С:/1 создать файлы-пустышки с теми же именами, что и в C:/2 ?

bomzzz: Спасибо!
Автор: bomzzz
Дата сообщения: 12.12.2010 17:59
Nikoderiko
ECHO OFF
COLOR 9F
CLS
for /f "delims=" %%I in ('dir /b C:\2') do echo off>C:\1\%%I
pause
Автор: Nikoderiko
Дата сообщения: 12.12.2010 19:41
Ещё вопрос - как получить имя текущей папки в качестве переменной?
Не путь к ней, а именно само имя?

01MDM: Спасибо!
Автор: 01MDM
Дата сообщения: 12.12.2010 20:08
Nikoderiko

Код:
for %%i in ("%cd%") do echo %%~nxi
Автор: sisss
Дата сообщения: 12.12.2010 21:59
Есть утилитка

Цитата:
test.exe /ключ1=**** /ключ2=****** /ключ3="и вот сюда нужно результат ipconfig вставить"

Реально?
Автор: wolf0425
Дата сообщения: 13.12.2010 07:32

Цитата:
вот сюда нужно результат ipconfig вставить

ipconfig выдает как бы больше одной строки - какой результат ты хочешь вставлять?
перехватить вывод ipconfig и запихнуть любую из строк (или её часть) в переменную - проблем в общем-то нет...
Автор: K0NCTANT1N
Дата сообщения: 13.12.2010 12:14
res2001
Изменил свой огород:
Код: SET FilesYes=No
FOR %%F IN (G:\BOX\ISH\*.*) DO SET FilesYes=Yes
IF "%FilesYes%"=="Yes" FOR %%A IN (G:\BOX\ISH\*.*) DO IF %%~zA LEQ 5000000 TOMAIL -f%%~fsA -nSERG -hU0H0 -d -t6
Автор: sisss
Дата сообщения: 13.12.2010 13:29
Нет не часть, всё что выводит ip config сунуть туда
Автор: Free_Soft
Дата сообщения: 13.12.2010 13:40
sisss

Цитата:
всё что выводит ip config сунуть туда

это что ж такая за утилита, которая умеет работать с простыней строк в качестве параметра??
Автор: res2001
Дата сообщения: 13.12.2010 14:26
sisss

Цитата:
Нет не часть, всё что выводит ip config сунуть туда

Не реально.
Реально вывод ipconfig сохранить в файл и имя файла подсунуть утилите или подать вывод ipconfig как входной поток для тулзы.
Автор: Joo1z
Дата сообщения: 13.12.2010 14:29
Free_Soft
Эти умеют.
Автор: res2001
Дата сообщения: 13.12.2010 14:32
Joo1z
Не умеют, там как раз вывод подается во входной поток (setclip), а getclip - содержимое клипборда выводит в выходной поток. Это не то же самое что хочет sisss.
Автор: Joo1z
Дата сообщения: 13.12.2010 14:41
res2001
Просто не понятно зачем? ТЗ никакое.
Ощущение, что он хочет слать вывод ipconfig по аське.
Автор: wolf0425
Дата сообщения: 13.12.2010 15:31

Цитата:
Ощущение, что он хочет слать вывод ipconfig по аське.
ну может и хочет, дело в общем-то неплохое. только вот ТЗ - по прежнему никакое.
Ему нужно или ковырять ключи той программы чтоб она поняла откуда брать сразу много строк для отправки - уж из файла их читать, из клипборда, с stdin - пофиг, но точно не из командной строки.
Или отсылать строки последовательно, вызывая программу заново для каждой строки вывода ipconfig.
Автор: sisss
Дата сообщения: 13.12.2010 20:48
Да, вы угадали, я и буду отправлять по асе, а проге на аргумент все равно она читает, /mess(messege то есть)=и тут до 800 строк что ли, я опытным путем смотрел, вы мне только помогите написать для вставки результатов ipconfiga бат, должно вставится вот это:

Цитата:

Подключение по локальной сети - Ethernet адаптер:



DNS-суффикс этого подключения . . :

IP-адрес . . . . . . . . . . . . : 10.45.1.185

Маска подсети . . . . . . . . . . : 255.255.255.0

Основной шлюз . . . . . . . . . . : 10.45.1.1



beeline - PPP адаптер:



DNS-суффикс этого подключения . . :

IP-адрес . . . . . . . . . . . . : 78.106.197.85

Маска подсети . . . . . . . . . . : 255.255.255.255

Основной шлюз . . . . . . . . . . : 78.106.197.85

Сбособы в принципе все хороши но несколько раз вызывать екзешник лучше не надо,тк он каждый раз должен логинится на серве аси, а чем больщше он это делает тем вероятнее заблочат юин (на всегда, но или на время, что тоже очень плохо).
Поэтому, можно сделать:

Цитата:

icqsend.exe ' muin="ася отправителя" ' ' pass="пароль отправителя" ' ' duin="ася получателя" ' mess=!ВОТ СЮДА!
ipconfig > 1.txt
и уже тут содержимое файла кинуть в аргумент запуска

Но это мое предположение, если знаете способ лучше, а наверняка знаете то это хорошо) Вся надежда на вас)
Автор: wolf0425
Дата сообщения: 13.12.2010 22:45

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

Добавлено:

Цитата:
и уже тут содержимое файла кинуть в аргумент запуска
для тормозов повторяю: содержимое МНОГОстрочного файла при всём желании не получится "кинуть в" принципиально однострочный "аргумент запуска".
Автор: res2001
Дата сообщения: 14.12.2010 08:13
sisss
Как вариант - вывод ipconfig сложить в одну строку и передавать в таком виде, будет изрядная каша. Но можно и не отправлять весь вывод, а только то что необходимо.
Автор: Joo1z
Дата сообщения: 14.12.2010 10:13
Этот бот может подойдет?
Автор: sisss
Дата сообщения: 14.12.2010 14:39
res2001
Ну, что логично мне нужен только:

Цитата:
IP-адрес . . . . . . . . . . . . : 78.106.197.85

Как его выковырнуть из текста и добавить в принципиально однострочный аргумент
Автор: res2001
Дата сообщения: 14.12.2010 15:11
sisss

Цитата:
Ну, что логично мне нужен только:

Ну вот, давно бы так.

Цитата:
Как его выковырнуть из текста

Выковырнуть можно так:

Код: @echo off
SetLocal EnableDelayedExpansion
set "ipstr="
for /f "tokens=2 delims=:" %%a in ('ipconfig ^| findstr "IP-" ') do (
    for /f %%b in ("%%a") do set "ipstr=!ipstr!;%%b"
)
set "ipstr=%ipstr:~1%"
set ipstr
Автор: sisss
Дата сообщения: 14.12.2010 21:12
Нашёл сайтик http://icanhazip.com/ он выводит только 1 строку с веншним IP как можно, то что он выводит засунуть в фаил, и возможно ли это вообще?
Автор: wolf0425
Дата сообщения: 14.12.2010 21:27

Цитата:
как можно, то что он выводит засунуть в фаил

wget есть где-то в шапке. Ну или в гугле.
Автор: Lamman
Дата сообщения: 15.12.2010 10:02
Задача стоит такая:
В некоторой директории лежит ~1000 файлов с именами формата pict_%data%_%time%.bmp
Т.е. в имени файла указано время его создания. При этом в свойствах у всех файлов время создания одно и то же.
Надо каким-то образом переименовать эти файлы, заменив pict_%data%_%time%.bmp на порядковый_номер.bmp
Порядковый номер - число от 1 и до (кол-во файлов).
Причём необходимо, что бы порядковый номер причислялся от более "ранних" файлов к более "поздним", на основании даты и времени имени файла.
Как это возможно сделать?
Автор: res2001
Дата сообщения: 15.12.2010 10:46
Lamman
Как-то так:

Код: @echo off
set "count=1"
for /f %%a in ('dir /O:D /B pict_*.bmp') do (
call ren %%a %%count%%.bmp
set /a count+=1
)
Автор: Lamman
Дата сообщения: 15.12.2010 11:39
res2001

Здорово!
Работает.

Не вполне понятен, правда, синтаксис...
Почему %%count%% а не %counnt%?..
Это что, как бы "именем файла будет переменная от переменной"?.. А где тогда задание значения этой переменной? Или это поправка на пакетный запуск for?
А dir /o:d предполагает, что по времени создания они таки различаются. Действительно, оказывается эти конкретные файлы и правда отличаются...
И что означает call ren?.. Это же вызов сценария... но ren - вроде бы не сценарий... То есть можно запускать call'ом отдельные команды... зачем?.. Что бы передать им параметры?.. Но они и так их получат, вроде бы.
Зачем тогда?..

Уж простите за въедливость... Но хотелось бы вникнуть.
Автор: res2001
Дата сообщения: 15.12.2010 11:49
Lamman

Цитата:
Почему %%count%% а не %counnt%?..


Цитата:
И что означает call ren?.. Это же вызов сценария... но ren - вроде бы не сценарий... То есть можно запускать call'ом отдельные команды... зачем?.. Что бы передать им параметры?.. Но они и так их получат, вроде бы.
Зачем тогда?..

%%count%% в связке с call - это способ уйти от использования оператора SetLocal EnableDelayedExpansion и "!" для обращения к переменным в теле цикла.
В твоем случае это в общем то не критично, можно и не обходить, но бывают моменты когда использование SetLocal EnableDelayedExpansion не желательно.

Добавлено:
callом можно не только сценарии вызывать, в принципе все что хочешь наверное, в т.ч. подпрограммы, находящиеся в этом же батнике: call :sub <parameters>
Автор: wolf0425
Дата сообщения: 15.12.2010 13:38

Цитата:
Не вполне понятен, правда, синтаксис...
Почему %%count%% а не %counnt%?..

потому что %counnt% был бы заменен на значение переменной в момент старта цикла, а у %%count%% в тот момент только произойдет замена %% на %, а подстановка переменной произойдет только после call
так что это просто финт для неписания setlocal enabledelayedexpansion и неперехода на !count!, как выше замечено.


Код: Это что, как бы "именем файла будет переменная от переменной"?..
Автор: emfs
Дата сообщения: 15.12.2010 13:56
Нужно решение по отправке почты с шифрованием с консоли, вроде pgp.
Посмотрел на blat и zerat, не нашёл таких опций у них.
Пока наметил сделать через "мышь", но может ещё вариант есть?
Автор: Accessor
Дата сообщения: 15.12.2010 14:18
emfs
А чем плох консольный PGP и отправка Блатом ???
Автор: res2001
Дата сообщения: 15.12.2010 14:52
Accessor
Видимо нужно шифровать непосредственно письма, а не только вложенные файлы.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Windows 7 Starter


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