Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Чтение строки из файла в переменную

Ответить
Настройки темы
CMD/BAT - [решено] Чтение строки из файла в переменную

Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте. Т.к. в написании bat файлов нет опыта, необходима помощь. В определенном каталоге по условию появляется текстовый файл Flag.txt. В файле есть только одна строка - это путь до каталога картинок, формата bmp. Нужно в имеющийся рабочий bat файл, который выполняет некоторые действия, добавить строки, которые бы проверяли наличие файла Flag.txt, читали бы содержимое строки пути и копировали бы все картинки из каталога картинок в определеный каталог.
В батнике есть уже:
if exist Out\123.xml xcopy Out\123.xml \\User\In\ /y
Эта строка, при наличии файла, копирует его в каталог по сети. И после нужно добавить что-то типа
:сначала, видимо, определить путь, откуда копировать файлы (это строка в файле Flag.txt), и
if exist Out\Flag.txt xcopy <Здесь нужен путь, который определили>\*.bmp \\User\Image\ /y
Заранее спасибо!

Отправлено: 11:15, 29-01-2009

 


Moderator


Сообщения: 53548
Благодарности: 15531

Профиль | Отправить PM | Цитировать


sushnyak, в цикл вставляйте (образец я вам показал).

Отправлено: 18:54, 20-03-2009 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 35
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте. Пожалуйста помогите решить задачу, пытаюсь уже второй день и ни получается. Есть тексовый документ (1.txt), в нем около 200 строк текста, некоторые строки пустые, в некоторых спецсимволы. Необходимо создать New.txt и перенести в него из 1.txt первые 50 строк. Необходим перенос именно строк, а не просто текста, т.е. точная копия первых 50 строк из 1.txt . Пытался командой more - переносится не содиржимое экрана cmd, а содиржимое буфера, команда +150 не сработает даже если выставить обратный порядок, т.к. общее кол-во строк значение переменное, первые 50 строк всегда первые, новые появляются снизу, знака минус не предусмотрено, fiind и sort тоже никак.

Отправлено: 16:32, 03-04-2009 | #12



Moderator


Сообщения: 53548
Благодарности: 15531

Профиль | Отправить PM | Цитировать


Wens, VBS устроит?
Код: Выделить весь код
Dim FSO, FIn, FOut, Cnt
Set FSO = CreateObject("Scripting.FileSystemObject")

Set FIn = FSO.OpenTextFile("1.txt", 1)
Set FOut = FSO.CreateTextFile("New.txt", True)

Cnt = 0
Do While Not FIn.AtEndOfStream And Cnt < 50
  FOut.WriteLine FIn.ReadLine
  Cnt = Cnt + 1
Loop

FOut.Close
FIn.Close

Отправлено: 18:33, 03-04-2009 | #13


Новый участник


Сообщения: 35
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо за ответ, только эта операция является частью конструкции батника, попробовал встроить ее в батник и создать vbs из него - неполучается. Если особо не затруднит, нельзя ли найти решение через cmd ? В принципе, я командой more +50 создал второй файл txt , в нем нет как раз первых 50 строк, но не получается вывести разницу, пытаюсь заставить Findstr вывести разницу, тоже не получается.

Отправлено: 20:08, 03-04-2009 | #14



Moderator


Сообщения: 53548
Благодарности: 15531

Профиль | Отправить PM | Цитировать


Цитата Wens:
только эта операция является частью конструкции батника, попробовал встроить ее в батник и создать vbs из него - неполучается.
Делаете скрипт .vbs, запускаете из батника командой:
Код: Выделить весь код
CScript /Nologo имя_скрипта.vbs

Отправлено: 20:14, 03-04-2009 | #15


Новый участник


Сообщения: 35
Благодарности: 0

Профиль | Отправить PM | Цитировать


Так в том то и дело что мне очень надо иметь один только батник, можно создание и запуск скрипта в процессе работы батника, но у меня не получается перекинуть из батника в скрипт строку Do While Not FIn.AtEndOfStream And Cnt < 50 , все остальные строки долетают как надо, а эта либо не долетает вообще, либо с кавычками, либо приходят кракозяблы, между строками пустых строк как у вас нет, но если вставить недостающую, то работает. Вот ищу решение а иначи уже почти готовый батник придется переделывать в скрипт.

Отправлено: 21:41, 03-04-2009 | #16



Moderator


Сообщения: 53548
Благодарности: 15531

Профиль | Отправить PM | Цитировать


Цитата Wens:
не получается перекинуть из батника в скрипт строку Do While Not FIn.AtEndOfStream And Cnt < 50
Код: Выделить весь код
Echo Do While Not FIn.AtEndOfStream And Cnt ^< 50 >>имя_скрипта.vbs
Символ ^ для экранирования спецсимволов.

Отправлено: 22:10, 03-04-2009 | #17


Новый участник


Сообщения: 35
Благодарности: 0

Профиль | Отправить PM | Цитировать


Ну как обидно! Уже почти додумался сам, экперементировал с символами % и ^ перед <50. Большущее вам спасибо! Кстати летом пользовался вашим интегратором v.8.8.19 .На дистриб SP2купленный когда то в ларьке, был интегрирован SP3, аддоны WMP11 и IE7 - результат обалденный, система очень, очень стабильна, а вот недавно попытался зделать тоже на оригинальный CD SP2 OEM интегратором v.8.12.12 и сразу глюки! Еще раз спасибо за скрипт.

Отправлено: 22:37, 03-04-2009 | #18


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте. В написании bat файлов у меня мало опыта, необходима помощь.

Ситуация такая:
Есть комп дома и комп на работе. Дома IP динамический. Хочу заходить на домашний комп через "Подключение к удаленному рабочему столу" и др. - нужна информация об изменении IP домашнего компа.

Задумка такая:
В планировщике заданий(назначенные задания) каждый час указываю выполнять BAT-файл с содержанием:
ipconfig > C:\body.txt
C:\blat.exe C:\body.txt -to почта_куда@слать.ru -subject "IP-adress" -charset windows-1251

т.е. информация ipconfig пишется в body.txt и с помощью утилиты blat передается почтой на ящик "почта_куда@слать.ru".

Но в ipconfig много строк, нужна всего одна - IP - xxx.xxx.xxx.xxx (внешний IP)
Как вытащить нужную строку из txt файла? Чтобы её записать, к примеру в другой txt файл, и его передать на почту. Желательно, чтобы IP был в теме сообщения.

Возможно ли сделать так, чтобы информация об IP-адресе сначала сравнивалась с предыдущей и только в случае её изменения отправлялась на почту?

Заранее спасибо!

Отправлено: 13:07, 22-04-2009 | #19



Moderator


Сообщения: 53548
Благодарности: 15531

Профиль | Отправить PM | Цитировать


wander84, проще воспользоваться Dynamic DNS

Отправлено: 13:11, 22-04-2009 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Чтение строки из файла в переменную

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] StringRegExpReplace: Конверт. строки атрибутов файла в формат Attrib.exe Creat0R AutoIt 6 14-09-2009 22:52
[решено] Удаление строки из файла gregaz AutoIt 2 16-07-2009 18:46
[решено] Чтение текстового файла с неизвестным именем ZeroCrash AutoIt 4 01-07-2009 19:03
[решено] Чтение-запись битого файла vit777 Видео и аудио: обработка и кодирование 3 19-12-2007 09:45
Shell. Чтение текстового файла по строкам. Delphin911 Общий по Linux 11 07-04-2005 17:58




 
Переход