![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Построчное чтение из файла в переменную |
|
|
VBS/WSH/JS - [решено] Построчное чтение из файла в переменную
|
Ветеран Сообщения: 992 |
Было дело спрашивал как прочитать файл на vbs в переменную. Тогда скрипт отработал свое на "ура", а теперь, почему-то не хочет. Вроде как в пьяном угаре ничего не менял, но мало ли.
В общем теперь почему-то переменная возвращает "1" (без кавычек) Просьба указать где я не прав. 01 Option Explicit 02 Dim strSourceFile 03 Dim oShell 04 Dim objFSO 05 Dim strLine 06 07 Set oShell = WScript.CreateObject("WScript.Shell") 08 09 strSourceFile = "IP.txt" 10 11 With WScript.CreateObject("Scripting.FileSystemObject") 12 If .FileExists(strSourceFile) Then 13 With .OpenTextFile(strSourceFile) 14 Do Until .AtEndOfStream 15 strLine = .ReadLine() 16 17 oShell.Run "putty.exe" 18 WScript.Sleep 300 19 oShell.SendKeys strLine 20 WScript.Sleep 300 21 oShell.SendKeys "%g" 22 WScript.Sleep 300 23 oShell.SendKeys "{DOWN}" 24 WScript.Sleep 300 25 oShell.SendKeys "%l" 26 WScript.Sleep 300 27 oShell.SendKeys "%f" & "D:\logs\&H.log" 28 WScript.Sleep 300 29 oShell.SendKeys "%o" 30 WScript.Sleep 3000 31 oShell.SendKeys "user" & chr(13) 32 WScript.Sleep 300 33 oShell.SendKeys "P@$$w0rd" & chr(13) 34 WScript.Sleep 300 35 oShell.SendKeys "show ver | inc Serial" & chr(13) 36 WScript.Sleep 300 37 oShell.SendKeys "exit" & chr(13) 38 39 40 Loop 41 42 .Close 43 End With 44 Else 45 WScript.Echo "Can't find [" & strSourceFile & "]." 46 WScript.Quit 1 47 End If 48 End With 49 50 WScript.Quit 0 |
|
Отправлено: 12:36, 05-02-2015 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Elven:
? |
|
Отправлено: 13:12, 05-02-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать |
Отправлено: 13:21, 05-02-2015 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Elven, тогда вовсе не могу понять изложенного:
Цитата Elven:
|
|
Отправлено: 13:39, 05-02-2015 | #4 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать скрипт должен брать построчно данные из файла (IP.txt), запускать "putty.exe" и передавать открывшемуся окну значение находящееся в переменной.
именно в этот момент окну "putty.exe" передается значение "1" Файл IP.txt - существует, путь к нему я пытался указывать и относительный и абсолютный, результат один - "1". (извините за каламбур) |
|
Отправлено: 14:04, 05-02-2015 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Elven, я никогда не рассчитывал на гарантированную работу «.SendKeys».
|
Отправлено: 14:46, 05-02-2015 | #6 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Обрезал то что все равно не имеет значения.
Option Explicit Dim strSourceFile Dim oShell Dim objFSO Dim strLine Set oShell = WScript.CreateObject("WScript.Shell") strSourceFile = "IP.txt" With WScript.CreateObject("Scripting.FileSystemObject") If .FileExists(strSourceFile) Then With .OpenTextFile(strSourceFile) Do Until .AtEndOfStream strLine = .ReadLine() WScript.Echo strLine Loop .Close End With Else WScript.Echo "Can't find [" & strSourceFile & "]." WScript.Quit 1 End If End With WScript.Quit 0 ![]() |
Последний раз редактировалось Elven, 05-02-2015 в 15:27. Отправлено: 15:02, 05-02-2015 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Elven, упакуйте Ваш файл «IP.txt» в архив, выложите на RGhost. Ссылку — сюда.
|
Отправлено: 15:50, 05-02-2015 | #8 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать |
Отправлено: 16:12, 05-02-2015 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Elven, Ваш файл в кодировке Unicode LE/1200. Просто сохраните его в ANSI/1251.
Ситуация, кстати, интересная…
Например, метод «.OpenTextFile()» объекта «Scripting.FileSystemObject»:
Скрытый текст
Option Explicit
Const ForReading = 1
Const TristateTrue = -1
Dim strSourceFile
Dim strLine
strSourceFile = "E:\Песочница\0429\IP.txt"
With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strSourceFile) Then
With .OpenTextFile(strSourceFile, ForReading, TristateTrue)
Do Until .AtEndOfStream
strLine = .ReadLine()
WScript.Echo strLine
Loop
.Close
End With
Else
WScript.Echo "Can't find [" & strSourceFile & "]."
WScript.Quit 1
End If
End With
WScript.Quit 0
несмотря на параметры, открывает файл как ANSI/1251, со всеми вытекающими. А вот если использовать, казалось бы, вполне аналогичный же метод «.OpenAsTextStream» объекта «File»: Скрытый текст
Option Explicit
Const ForReading = 1
Const TristateTrue = -1
Dim strSourceFile
Dim strLine
strSourceFile = "E:\Песочница\0429\IP.txt"
With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strSourceFile) Then
With .GetFile(strSourceFile).OpenAsTextStream(ForReading, TristateTrue)
Do Until .AtEndOfStream
strLine = .ReadLine()
WScript.Echo strLine
Loop
.Close
End With
Else
WScript.Echo "Can't find [" & strSourceFile & "]."
WScript.Quit 1
End If
End With
WScript.Quit 0
с теми же параметрами — то всё отрабатывает как положено. Пожалуй, в первый раз сталкиваюсь с подобным поведением. |
Отправлено: 16:44, 05-02-2015 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Построчное чтение файла и запись в другой | acefoster | Скриптовые языки администрирования Windows | 11 | 28-03-2024 08:02 | |
[решено] Построчное чтение файла в Bash | FATruden | Программирование в *nix | 11 | 19-05-2017 00:44 | |
VBS/WSH/JS - [решено] Построчное чтение "большого" файла и замена символов | phenoMANon | Скриптовые языки администрирования Windows | 6 | 23-08-2013 10:44 | |
CMD/BAT - Чтение всего txt файла в переменную bat | binwatch@vk | Скриптовые языки администрирования Windows | 10 | 09-09-2012 18:57 | |
CMD/BAT - [решено] Чтение строки из файла в переменную | Николя | Скриптовые языки администрирования Windows | 42 | 17-01-2010 19:42 |
|