2014-10-23 4 views
0

Так в основном у меня есть локальный файл .jpg, что я могу успешно тянуть строки из и вывода в PowerShell, выполнив следующие действия:Powershell - Get-Content с удаленного JPG конкретной линии

(Get-Content file.jpg)[4] 

который печатает четвертую строку кода. Проблема в том, что я хочу вытащить одну и ту же строку из .jpg после ее размещения на веб-сервере.

Я пробовал все, что я могу думать, однако я не могу, по-видимому, вытащить конкретные данные из .jpg, когда он сидит на веб-сервере.

Я думал, что это не будет работать, но до сих пор не повезло:

$JPG=$web.DownloadString("http://boeprox.files.wordpress.com/2011/02/capture_thumb1.jpg") 
(Get-Content $JPG)[4] 

Прежде чем кто получает мудрое и предложит сохранить файл локально и делает его, что это не вариант, файл должен оставаться на удаленном сервере, а не трогать диск.

Любая помощь очень ценится.

+0

'Get-Content' предназначен для получения содержимого файла. У вас уже есть их в строке. Что-то может быть не так, но это работает в некоторой степени '' ($ web.DownloadString ("http://boeprox.files.wordpress.com/2011/02/capture_thumb1.jpg") -split "' r ") [ 4] '' – Matt

ответ

0

У вас может возникнуть проблема с кодировкой, но корень вашей проблемы заключается в том, что возвращается Get-Content и массив строк. DownloadString возвращает именно это, строку.

Зная, что я преобразовал возвращение в и массив строк

($web.DownloadString("http://boeprox.files.wordpress.com/2011/02/capture_thumb1‌​.jpg") -split "`r") 

Я первоначально использовал "`r`n" для раскола, но он не работает. Так что теперь я смог получить 5-ю строчку, так как вы были

($web.DownloadString("http://boeprox.files.wordpress.com/2011/02/capture_thumb1‌​.jpg") -split "`r")[4] 

Однако это было так.

ÊÃ#Œ©|•ð×ÇÚ‡ü#¥i’üCºðÝí­åôÓ˜ô(õ0͹bº€§ärcóÎÜŒ×øƒã­]Ô|'5§ÄST]7QºšîfÓRÍí„—† 
Cq UÈ.„7—ólpqزsò¶í¯OøüDóYZö_yö|fð‹Yɨ'Å›´‰¶Ip5g1#qÁ|à™x'ø‡¨§éÿ üªLm´Ï‹6 
“2íõW•‚­…$àw=+ä¿…¿ ðþâ‹+Ï:Ÿ†ôýOUi%°‡FP“QY´¶üa—j‚~R7rH®,|dø´úÝ·Šn~Î,Õã 
µŠ8ÌjAVò‚ív7nä’iLJ£)8©mývÍœRm_y÷Tß|hOÚþ/i°âW€ùš³.%B¡ÉûÊHÈê23SÙügðmõÌVV_ìn 
.&RÑC¦ï$€rª9# œŽÀ×ò|~ø˜ÂVR°Šk«ƒww2iñº›td;î<˜Çʹ9'5€¿¼`ºÞ›â?íEmCI´66r½¼l 
܇YR0À rÕk†Õµ—åþD¼âÛ#ïؾ<|<·—ñ“H}ªY¶êäí©8<RÚüvøyu4vÖ¿´™æ•‚GZ³;»@9'ØWÂ7 
_¾!\Á 
+0

Чемпион! Вы спасли меня. – shadowmoses

+1

@shadowmoses. Не предположим, что вы могли бы рассказать мне, как этот текст полезен вам? – Matt

+0

Это как минимум я мог сделать после этого (я застрял, играя с ним часами). Итак, в настоящее время я изучаю использование стенографии, текст блоха хешируется значением, которое знает только запрашивающий. – shadowmoses

0

Получает ли это то, что вы ищете? Честно говоря, я никогда не слышал, чтобы использовать Get-Content на что-либо, кроме текстовых файлов, но вы узнаете что-то новое каждый день :)

(Invoke-WebRequest -Uri 'http://boeprox.files.wordpress.com/2011/02/capture_thumb1.jpg').Content[4] 
+0

Для этого вам нужно сделать что-то еще с данными. '.Content' в этом случае является просто объектом' System.Byte [] '. Я полагаю, вы можете преобразовать его обратно в строку. – Matt

+0

Я так и думал, но я до сих пор не использую Get-Content для чтения содержимого двоичного файла. –

+0

Спасибо за ввод adbertram. К сожалению, использование Invoke на своем собственном не разрезало его, предложение Мэтта работало как шарм с добавлением подстроки, поскольку истинная позиция линии фактически была изменена после ее загрузки на веб-сервер (нет идеи). – shadowmoses

0

Вы можете использовать Sysinternals strings утилита для извлечения строк из бинарных файлов например

(strings -q ..\Pictures\foo.png)[3] 

ОТВЕТ Есть ли причина, по которой вы не можете сохранить ее в временном файле? Проблема в том, что у вас нет прав на запись?

+0

Строки хорошие, не знали, что строки могут ссылаться на HTTP-запросы (если это то, что вы имели в виду). Я изначально хранил временный файл без проблем, но я предполагаю, что у меня обсессивно-компульсивное расстройство, и мне хотелось посмотреть, как далеко я могу нажать на конверт так сказать. На лету всегда много сексуальнее нет? – shadowmoses

+0

До точки, да. :-) И нет, strings.exe не выполняет HTTP-запросы. Это просто удобная утилита командной строки для извлечения строк из двоичных файлов. –

+0

Прохладный, да, я использую строки все время на deb/arch и Windows, это хорошо. Это чудо Powershell не имеет родной альтернативы, кроме «Select-String». – shadowmoses

 Смежные вопросы

  • Нет связанных вопросов^_^