Рубрики Программирование на amida168 10 февраля 2010 года в 3:10 вечера 7 комментариев Я играл с PHP и веб-сервисов в последнее время. Поскольку у меня не узнаете PHP с нуля, я просто пытался собрать мой код базы, на примерах, которые я собрал. Одна из проблем, озадачил меня в течение долгого времени. Я не разобрался, в чем проблема, пока я не переписал программу в PowerShell.
Я использовал простой XML для разбора XML-документа. Есть несколько ссылок в этом документе. Я повторного ссылки массив распечатать информацию. Проблема в том, я могу распечатать некоторые элементы, но не другие. Например, это работает:
Эхо $ ссылке-> описания;
Тем не менее, это не работает:
Эхо $ ссылке-> Link-код HTML;
Я работал над этой конкретной проблемы в течение дня, но я не мог понять, что случилось. Трудно отладки с помощью PHP, так что я решил использовать PowerShell переписать программу и посмотреть, если я могу повторить тот же «ошибки». Я действительно получил такой же проблемой. В PowerShell, точечная нотация используется и я не могу распечатать, либо:
Эхо $ link.link-кода HTML-
Позже я узнал, что дефиса интерпретируется как знак минус. Я должен был изменить код PowerShell:
Эхо $ link.Item ('ссылка-кода HTML-')
С этой информацией в виду, я знаю, дефис в имени элемента XML является причиной. Электронное руководство по PHP SimpleXML имеет один пример . Итак, мой исходный код должен быть изменен, чтобы
Эхо $ ссылке-> {'ссылка-кода HTML-'};
Рубрики VBScript , Windows, по amida168 16 января 2007 года в 10:17 утра в одном из комментариев Microsoft имеет менее известная технология называется HTA (HTML Application). В основном, это дает скрипты GUI интерфейсом использованием HTML обозначений. Я знал HTA в течение многих лет, но я никогда не обойти, чтобы попробовать его. Пока я думал о написании сценария для проверки запущенных процессов на компьютере, я думал, что будет хорошо, если я могу написать его, используя HTA. Вот мой эксперимент.
Как системный администратор, я часто нужно проверить машину пользователя на наличие вредоносных программ. Ручной процесс, как это. Я открываю диспетчер задач и искать ничего я не знаком. Когда я определить те подозрительные процессы, я затем открыть веб-браузер для проверки процессов. Два участка я использую регулярно, ProcessLibrary.com и Google. Мне нужно, чтобы войти в процесс имя вручную, и весь процесс утомительный.
Идея заключается в следующем, я хочу написать простой скрипт, чтобы получить список всех процессов, запущенных на компьютере. Я хочу представить результаты в таблицу HTML со ссылками на ProcessLibrary и Google. Если мне нужно проверить конкретный процесс, я просто нажмите на соответствующую ссылку без ручного ввода имени процесса.
Прежде, чем я начал писать сценарий, я нашел один скрипт из ScriptingGuys на MSN групп. Оригинальный сценарий показывает процессы, запущенные на локальном компьютере. Я изменил его так, что он может проверить удаленных компьютерах, и я также добавлены ссылки, чтобы найти информацию о процессе ProcessLibrary.com и Google.
Вот ссылка на сценарий.
WordPress.com не позволяет загрузить из. HTA файл, так что файл был загружен в виде файла документ Word с расширением. Док. Нажмите на ссылку и сохраните файл как checkprocess.doc. Тогда измените название на checkprocess.hta, и вы готовы попробовать.
Чтобы запустить его, дважды щелкните по файлу, как и другие приложения. Она открывает окно, как это.
Вы можете ввести имя удаленного компьютера в текстовом поле, или вы можете просто нажать кнопку Выполнить скрипт для проверки локального компьютера. Затем заполнить нижней части окна с процессами.
Чтобы проверить определенный информационный процесс, нажмите на ссылки для поиска рядом с ним. Приложение будет воспитывать браузер с результатами поиска.
Рубрики PowerShell по amida168 17 ноября 2006 года в 5:07 вечера один комментарий Я использовал PowerShell скрипт для проверки цены Garmin i3 на Амазонке. Это очень легко изменить его, чтобы проверить наличие PS3. Когда PS3 не доступна, цена от запроса составляет $ 0,00. Так, если цена будет больше 0, что означает, что это доступно. Затем сценарий готовит письмо с ссылкой для его приобретения.
Вам нужно изменить имя сервера SMTP ($ SmtpServer), Ваш адрес электронной почты (e-mail $) и AWSAccessKeyId ($ awskey). Если вы не знаете, как получить AWSAccessKeyId, вы можете проверить мой оригинальный пост для Garmin i3. По умолчанию, чтобы проверить модель с 60GB HD. Раскомментируем второго $ ASIN проверить модель с 20GB HD.
После того как вы проверить работу скрипта, с вашими изменениями, используйте ваш любимый планировщик, чтобы проверить наличие регулярно.
# Скрипт для проверки PS3 на Amazon
SmtpServer $ = "smtp.nospam.com"
E-mail $ = "someone@nospam.com"
Awskey $ = "Ваш-AWSAccessKeyId"
$ ASIN = "B0009VXAM0" # 60 Гб
# $ ASIN = "B000IZWNLG" # 20GB
$ URL = "http://webservices.amazon.com/onca/xml?Service=AWSECommerceService"
+ $ URL = "& AWSAccessKeyId =" + $ awskey
+ $ URL = "& Operation = ItemLookup"
+ $ URL = "& Itemid =" + $ ASIN
+ $ URL = "& = ResponseGroup Предложения"
$ Rxml = [XML] (New-Object Net.WebClient). DownloadString ("$ URL")
$ Цена = $ rxml.ItemLookupResponse.Items.Item.Offers.Offer.OfferListing.Price.Amount
$ Цена = $ price/100
если ($ Цена GT-0) {
TextBody $ = "Playstation 3 теперь $" + $ + цена "на Амазонки"
$ TextBody + = "http://www.amazon.com/exec/obidos/ASIN/" + $ ASIN + "/ = animereviews-20/ref Носим"
$ SMTP = New-Object Net.Mail.SmtpClient ($ SmtpServer)
Smtp.send $ ($ e-mail, $ электронной почте, "PS3 доступна на Amazon!", $ TextBody)
} Не Рубрики PowerShell по amida168 19 июля 2006 года в 5:26 вечера ни одного комментария Я получил некоторые опыты с веб-сервиса Amazon, когда я создал свой аниме Отзывы сайта. Это довольно опрятно, что вы можете написать запрос, чтобы найти очень подробную информацию о продукте. Недавно, я имею в виду купить Garmin StreetPilot i3 из Амазонки.
Обычная цена составляет около $ 308,00, но я слышал, что иногда Amazon бы снизить цену до по цене от $ 199,00. Однако низкая цена доступна только в течение короткого времени. Я не хочу сидеть перед своим компьютером и вручную проверьте цену себе. Не было бы неплохо, если бы у меня может быть сценарий, чтобы проверить цены автоматически? Было бы лучше, если я буду писать сценарий с помощью PowerShell!
Хорошо, достаточно бессвязное. Давайте начнем. Для использования веб-служб Amazon, первое, что нужно сделать, это зарегистрироваться и получить свой собственный Access Key ID. Вы можете создать бесплатную учетную запись здесь .
После того, как счет был успешно создан, вы можете войти на сайт с новой учетной записи. Наведите курсор мыши на верхнюю часть кнопки с надписью "Ваш Web Services счет". Выпадающее меню будет появляться, нажмите "Просмотр идентификаторов ключей доступа". Есть два ключа, один называется "Access Key ID", другие называют "Секретный ключ доступа". Запишите идентификатор ключа доступа, это ключ, использованный для веб-службы. Следующим шагом является отправка секретной Access Key для меня.
Ладно, шучу. Вы не должны делиться секретного ключа доступа с кем угодно, он используется только для создания подписи. Вы должны держать его конфиденциальность и не раскрывать его никому.
Amazon Web Service предлагает несколько способов поиска информации о продукте. ItemSearch используется для поиска продуктов с помощью ключевых слов. Так как мы уже знаем, продукт, который нас интересует, мы можем просто использовать ItemLookup. Для использования ItemLookup, необходимо два вида информации, и AWSAccessKeyId ItemId. У вас уже есть ID Access Key, все, что вам нужно знать, ItemId для продукта. Каждый продукт предлагается на Amazon имеет уникальный идентификатор. Если вы посмотрите на странице продукта, это называется ASIN. Вы можете использовать как ASIN ItemId для запроса. По запросу книги, пользоваться ISBN ItemId как в запросе. Это строка запроса для поиска информации для Garmin i3.
$ URL = "http://webservices.amazon.com/onca/xml?Service=AWSECommerceService"
+ $ URL = "& AWSAccessKeyId = Your_AccessKeyID_Here"
+ $ URL = "& Operation = ItemLookup"
+ $ URL = "& Itemid = B000ACHVVE"
+ $ URL = "& = ResponseGroup Предложения"
Отметим, что это для Северной Америки www.amazon.com. Если вы хотите запросить информацию о продукте для других сайтов Amazon. Вам нужно изменить первую строку соответственно. Вы можете проверить здесь для получения информации о том, как изменить строку запроса. Следует также отметить, что если Вы не укажете ResponseGroup в запросе, по умолчанию ответ "Запрос" и "Малый", которые не имеют информации о ценах. Для получения текущей цены, мы используем "Предложения", как ответ группы. Наконец, мы используем Net.WebClient класса. Чистая, чтобы получить ответ от веб-сервиса Amazon. Ответ от сервера является XML строку. Мы можем привести его к XMLDocument для легкого доступа к данным. Количество возвращаемых запросом в центах, поэтому разделить его на 100, чтобы получить сумму в долларах.
$ Rxml = [XML] (New-Object Net.WebClient). DownloadString ("$ URL") $ = цена $ $ rxml.ItemLookupResponse.Items.Item.Offers.Offer.OfferListing.Price.Amount цена = $ price/100 Эхо $ цене Вы можете спросить, как вы пришли с предложением цены? Вы можете проверить документацию в Amazon Web сервис веб-сайт, или вы можете сохранить ответ в виде XML-файла и использовать свой любимый редактор XML / читателю для изучения реакции. FireFox просто отлично для разбора XML-файла.
SXML = $ (New-Object Net.WebClient). DownloadString ("$ URL")
Эхо $ SXML> "C: \ \ response.xml" Я тестировал скрипт под Vista Beta 2 и он работает хорошо.
Не Рубрики PowerShell по amida168 12 мая 2006 года в 4:33 вечера ни одного комментария Я не играл с оболочкой Монады на некоторое время, следующее, что я знаю, что есть новый скриптовый язык называется "Microsoft PowerShell". Сначала я думал, что это совершенно новый язык, но на самом деле они переименовали монады и сделал его PowerShell.
После установки, я попытался запустить одном из моих предыдущих скрипты Монады. Как и предыдущие обновления монады, политика выполнения по умолчанию является "ограниченным". В рамках этой политики, вы можете использовать PowerShell в интерактивном режиме. Сценарии не допускается. Если вы хотите запустить собственные сценарии без подписания, вам необходимо изменить политику выполнения. Теперь есть используется для изменения политики без использования редактора реестра. Вот используется для изменения политики RemoteSigned.
Set-ExecutionPolicy RemoteSigned
Рубрики VBScript , Windows, по amida168 2 марта 2006 года в 11:08 утра 2 комментария Я играю с WQL сегодня. Для Долгое время я не мог получить этот запрос на работу.
Установить colFiles objWMIService.ExecQuery = ("SELECT * FROM CIM_DataFile" & _
"Где диск = 'C:' И РАСПРОСТРАНЕНИЕ = 'MDB и Path =" \ \ Windows \ \' ") Вы заметили, ничего плохого в запросе? Это путь! Я обнаружил, что вам нужно использовать двойной обратный слеш вместо одной косой чертой назад. Таким образом, правильный запрос должен быть таким.
Установить colFiles objWMIService.ExecQuery = ("SELECT * FROM CIM_DataFile" & _
"Где диск = 'C:' И РАСПРОСТРАНЕНИЕ = 'MDB и Path = \ \ \ \ Windows \ \ \ \'") Кроме того, я обнаружил, что если у вас есть! "=" В запросе, запрос выполняется очень очень медленно.
Рубрики VBScript , Windows, по amida168 28 февраля 2006 года в 3:25 вечера 6 комментариев Кто-то в группе новостей задал этот вопрос. Это VBScript, который я написал для достижения этой цели.
Dim objExcel
Установить objExcel = WScript.CreateObject ("Excel.Application")
objExcel.Visible = TRUE
objExcel.Workbooks.Open "C: \ \ bintest.xls"
objExcel.Workbooks (1). Активируйте
objExcel.Workbooks (1). листы (1). Range ("A1"). Выберите
Dim sLinkAddress
sLinkAddress = "http://www.google.com"
objExcel.Workbooks (1). листы (1). Hyperlinks.Add _
objExcel.Selection, sLinkAddress
objExcel.Workbooks (1) SaveAs. "C: \ \ bintest.xls"
objExcel.Quit
не установлен objExcel = ничего Не Рубрики VBScript по amida168 10 мая 2005 года в 1:52 вечера ни одного комментария Функция Найдено (strTarget, strPattern)
Dim Regex
Установите регулярное выражение = Новый RegExp
regEx.Pattern = strPattern
regEx.IgnoreCase = False
FOUND = regEx.Test (strTarget)
Не установлено регулярное выражение = Nothing
End Function
Рубрики VBScript , WMI на amida168 10 мая 2005 года в 1:09 вечера 3 комментария dtDate = "5/2/2005"
strSearchFolder = "C: Windows"
Установить objFSO = CreateObject ("Scripting.FileSystemObject")
WScript.Echo "файл (ы) последнее посещение:« И dtDate & "в:" & strSearchFolder
EnumAndCheckFiles objFSO.GetFolder (strSearchFolder), dtDate
Sub EnumAndCheckFiles (objFolder, dtDate)
Установить objFiles = objFolder.Files
Для каждого OBJFILE в objFiles
CheckFile OBJFILE, dtDate
Следующий
Для каждого objSubfolder в objFolder.SubFolders
EnumAndCheckFiles objSubfolder, dtDate
Следующий
End Sub
Sub CheckFile (OBJFILE, dtDate)
Если DateDiff ("D", objFile.DateLastAccessed, dtDate) = 0 Тогда
WScript.Echo objFile.Path
End If
End Sub