תחומים
    • הרשמה
    • התחברות
    • חיפוש
    • קטגוריות
    • פוסטים אחרונים
    • משתמשים
    • חיפוש
    חוקי הפורום

    עזרה בהורדה ב PowerShell

    תוכנה
    3
    22
    165
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • Y
      yits נערך לאחרונה על ידי yits

      אני מוריד קבצים דרך PS ואני רוצה לדעת מה אורך הקובץ Content-Length: לפני שאני מבצע שמירה,
      או אחרי השמירה, מכיוון שאני רוצה לצאת מהלולאה מיד כשזה מגיע לקבצים ללא תוכן.

      זה הפקודה שאני מריץ

      Invoke-WebRequest $url -OutFile "$saveFolder\$book\$book $page.webp"
      

      לקניה והנחות ב KSP כנסו מכאן.
      למוצרים עם הנחה מכאן.

      yossiz תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • yossiz
        yossiz @yits נערך לאחרונה על ידי

        @yits

        $page = Invoke-WebRequest $url -OutFile "$saveFolder\$book\$book $page.webp" -passThru
        

        עכשיו המשתנה $page מכיל את התשובה, ובשדה RawContentLength יש לך האורך.

        📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

        תגובה 1 תגובה אחרונה תגובה ציטוט 2
        • dovid
          dovid ניהול נערך לאחרונה על ידי

          @yossiz חסך בתשובה שלו, אני מרחיב אותה לתשובה מלאה

          $page = Invoke-WebRequest $url 
          if ($page.RawContentLength  -ne 0)
          {
              Out-File -FilePath "$saveFolder\$book\$book $page.webp" -InputObject $page.RawContent 
          }
          

          אפשר מן הסתם לעשות פילטר בשורה אחת (אני לא יודע) אבל אולי זה שימושי לך תנאי ללוג.

          אפשר ליצור קשר dovid@tchumim.com

          Y 2 תגובות תגובה אחרונה תגובה ציטוט 2
          • yossiz
            yossiz נערך לאחרונה על ידי yossiz

            @dovid למדתי היום משהו מצמרר,
            שבברירת מחדל Invoke-WebRequest עושה פרסור של הדף כולל JS 😨
            על ידי מנוע IE 😨😨
            ומציג תיבת דו-שיח גרפי כאשר יש שגיאת JS 😨😨😨

            נסה Invoke-WebRequest https://www.google.com בנטפרי

            ecf3dcfa-361f-44c7-8ab7-c05f327e4172-image.png

            📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

            Y תגובה 1 תגובה אחרונה תגובה ציטוט 1
            • Y
              yits @dovid נערך לאחרונה על ידי

              @yossiz
              זה עובד מצוין אבל הוא שומר קודם את הקובץ הריק למחשב.
              מה ש @dovid כתב זה יותר ארוך אבל לא שומר בכלל קבצים ריקים.

              תודה רבה.

              לקניה והנחות ב KSP כנסו מכאן.
              למוצרים עם הנחה מכאן.

              תגובה 1 תגובה אחרונה תגובה ציטוט 1
              • Y
                yits @yossiz נערך לאחרונה על ידי

                @yossiz אמר בעזרה בהורדה ב PowerShell:

                נסה Invoke-WebRequest https://www.google.com בנטפרי

                לא מופיע לי שגיאה.

                PS C:\Users\XXXXX> Invoke-WebRequest https://www.google.com
                
                
                StatusCode        : 200
                StatusDescription : OK
                Content           : <!doctype html><html dir="rtl" itemscope="" itemtype="http://schema.org/WebPage"
                                    lang="iw"><head><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta
                                    content="/images/branding/goog...
                RawContent        : HTTP/1.1 200 OK
                                    X-XSS-Protection: 0
                                    X-Frame-Options: SAMEORIGIN
                                    Cache-Control: private, max-age=0
                                    Content-Type: text/html; charset=UTF-8
                                    Date: Tue, 26 May 2020 12:16:31 GMT
                                    Expires: -1
                                    P3P: CP=...
                Forms             : {f}
                Headers           : {[X-XSS-Protection, 0], [X-Frame-Options, SAMEORIGIN], [Cache-Control, private, max-age=0],
                                    [Content-Type, text/html; charset=UTF-8]...}
                Images            : {@{innerHTML=; innerText=; outerHTML=<IMG id=hplogo style="PADDING-BOTTOM: 14px; PADDING-TOP:
                                    28px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px" alt=Google
                                    src="/images/branding/googlelogo/1x/googlelogo_white_background_color_272x92dp.png" width=272
                                    height=92>; outerText=; tagName=IMG; id=hplogo; style=PADDING-BOTTOM: 14px; PADDING-TOP: 28px;
                                    PADDING-LEFT: 0px; PADDING-RIGHT: 0px; alt=Google;
                                    src=/images/branding/googlelogo/1x/googlelogo_white_background_color_272x92dp.png; width=272;
                                    height=92}, @{innerHTML=; innerText=; outerHTML=<IMG id=tsuid1 style="CURSOR: pointer; POSITION:
                                    absolute; LEFT: 5px; Z-INDEX: 300; TOP: 4px" alt="" src="/textinputassistant/tia.png" width=27
                                    height=23 data-script-url="/textinputassistant/11/iw_tia.js">; outerText=; tagName=IMG; id=tsuid1;
                                    style=CURSOR: pointer; POSITION: absolute; LEFT: 5px; Z-INDEX: 300; TOP: 4px; alt=;
                                    src=/textinputassistant/tia.png; width=27; height=23;
                                    data-script-url=/textinputassistant/11/iw_tia.js}}
                InputFields       : {@{innerHTML=; innerText=; outerHTML=<INPUT type=hidden value=iw name=hl>; outerText=;
                                    tagName=INPUT; type=hidden; value=iw; name=hl}, @{innerHTML=; innerText=; outerHTML=<INPUT
                                    type=hidden value=hp name=source>; outerText=; tagName=INPUT; type=hidden; value=hp; name=source},
                                    @{innerHTML=; innerText=; outerHTML=<INPUT type=hidden name=biw>; outerText=; tagName=INPUT;
                                    type=hidden; name=biw}, @{innerHTML=; innerText=; outerHTML=<INPUT type=hidden name=bih>;
                                    outerText=; tagName=INPUT; type=hidden; name=bih}...}
                Links             : {@{innerHTML=<SPAN class=gbtb2></SPAN><SPAN class=gbts>חיפוש</SPAN>; innerText=חיפוש; outerHTML=<A
                                    onclick=gbar.logger.il(1,{t:1}); id=gb_1 class="gbzt gbz0l gbp1"
                                    href="https://www.google.co.il/webhp?tab=ww"><SPAN class=gbtb2></SPAN><SPAN
                                    class=gbts>חיפוש</SPAN></A>; outerText=חיפוש; tagName=A; onclick=gbar.logger.il(1,{t:1});;
                                    id=gb_1; class=gbzt gbz0l gbp1; href=https://www.google.co.il/webhp?tab=ww}, @{innerHTML=<SPAN
                                    class=gbtb2></SPAN><SPAN class=gbts>חיפוש תמונות</SPAN>; innerText=חיפוש תמונות; outerHTML=<A
                                    onclick=gbar.logger.il(1,{t:2}); id=gb_2 class=gbzt
                                    href="https://www.google.co.il/imghp?hl=iw&amp;tab=wi"><SPAN class=gbtb2></SPAN><SPAN
                                    class=gbts>חיפוש תמונות</SPAN></A>; outerText=חיפוש תמונות; tagName=A;
                                    onclick=gbar.logger.il(1,{t:2});; id=gb_2; class=gbzt;
                                    href=https://www.google.co.il/imghp?hl=iw&amp;tab=wi}, @{innerHTML=<SPAN class=gbtb2></SPAN><SPAN
                                    class=gbts>מפות</SPAN>; innerText=מפות; outerHTML=<A onclick=gbar.logger.il(1,{t:8}); id=gb_8
                                    class=gbzt href="https://maps.google.co.il/maps?hl=iw&amp;tab=wl"><SPAN class=gbtb2></SPAN><SPAN
                                    class=gbts>מפות</SPAN></A>; outerText=מפות; tagName=A; onclick=gbar.logger.il(1,{t:8});; id=gb_8;
                                    class=gbzt; href=https://maps.google.co.il/maps?hl=iw&amp;tab=wl}, @{innerHTML=<SPAN
                                    class=gbtb2></SPAN><SPAN class=gbts>YouTube</SPAN>; innerText=YouTube; outerHTML=<A
                                    onclick=gbar.logger.il(1,{t:36}); id=gb_36 class=gbzt
                                    href="https://www.youtube.com/?gl=IL&amp;tab=w1"><SPAN class=gbtb2></SPAN><SPAN
                                    class=gbts>YouTube</SPAN></A>; outerText=YouTube; tagName=A; onclick=gbar.logger.il(1,{t:36});;
                                    id=gb_36; class=gbzt; href=https://www.youtube.com/?gl=IL&amp;tab=w1}...}
                ParsedHtml        : mshtml.HTMLDocumentClass
                RawContentLength  : 48899
                
                
                

                לקניה והנחות ב KSP כנסו מכאן.
                למוצרים עם הנחה מכאן.

                תגובה 1 תגובה אחרונה תגובה ציטוט 0
                • Y
                  yits נערך לאחרונה על ידי yits

                  במיקום של השמירה אני משתמש בכמה משתנים וניסיתי לעשות עם פס תחתון והוא זיהה רק את המשתנה השני, ולכן השתמשתי עם רווח.

                  -OutFile "$saveFolder\$book\$book_$page.webp"
                  

                  איך אפשר להשתמש בשניהם יחד?

                  .

                  אגב המשתנה page הוא מספר רץ אצלי, ואם אני ישתמש איתו גם למה שכתבת כנראה זה לא יעבוד.

                  $page = Invoke-WebRequest $url -OutFile "$saveFolder\$book\$book $page.webp" -passThru
                  
                  

                  לקניה והנחות ב KSP כנסו מכאן.
                  למוצרים עם הנחה מכאן.

                  yossiz תגובה 1 תגובה אחרונה תגובה ציטוט 0
                  • dovid
                    dovid ניהול נערך לאחרונה על ידי

                    @yossiz זה מאפיין בפני עצמו ParsedHtml, לא ככה?

                    אפשר ליצור קשר dovid@tchumim.com

                    yossiz תגובה 1 תגובה אחרונה תגובה ציטוט 1
                    • yossiz
                      yossiz @yits נערך לאחרונה על ידי yossiz

                      @yits אמר בעזרה בהורדה ב PowerShell:

                      אגב המשתנה page הוא מספר רץ אצלי, ואם אני ישתמש איתו גם למה שכתבת כנראה זה לא יעבוד.

                      נכון, לא שמתי לב שאתה כבר משתמש במשתנה בשם ‎$page. תן לו שם אחר.

                      במיקום של השמירה אני משתמש בכמה משתנים וניסיתי לעשות עם פס תחתון והוא זיהה רק את המשתנה השני, ולכן השתמשתי עם רווח.

                      -OutFile "$saveFolder$book$book_$page.webp"

                      איך אפשר להשתמש בשניהם יחד?

                      זה קורה מסיבה מובנת, כי כאשר powershell נתקל בתו הדולר $ באמצע מחרוזת הוא מתייחס לכל הבא אחריו כחלק משם המשתנה, עד שהוא מגיע לתו שהוא לא חוקי באמצע משתנה. מכיון שתו _ הוא תו חוקי במשתנה, powershell לא יכול לדעת שהוא לא חלק משם המשתנה.
                      יש כמה פתרונות, מתוכם

                      -OutFile "$saveFolder\$book\$($book)_$page.webp"
                      -OutFile ("$saveFolder\$book\$book" + "_$page.webp")
                      

                      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                      תגובה 1 תגובה אחרונה תגובה ציטוט 2
                      • yossiz
                        yossiz @dovid נערך לאחרונה על ידי

                        @dovid אמר בעזרה בהורדה ב PowerShell:

                        @yossiz זה מאפיין בפני עצמו ParsedHtml, לא ככה?

                        כן, לא הכרתי. גישה לאחד מתוך כמה מאפיינים באובייקט המוחזר מריץ את ה-JS של הדף. (כמו כן הדפסה לקונסול מריץ את ה-JS כי זה ניגש למאפיינים אלו)

                        📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                        תגובה 1 תגובה אחרונה תגובה ציטוט 1
                        • Y
                          yits @dovid נערך לאחרונה על ידי

                          @dovid
                          הפתרון שהבאת לא עובד,
                          הוא יודע לומר אם הגודל הוא 0 או לא,
                          אבל לא ניתן לייצא אותו אח"כ לקובץ.

                          זה מה שניסיתי

                          $saveFolder = ($pwd).path
                          $book = 602285
                          $page = 0
                          md 602285
                          $url = "http://mefo.otzar.org/api/books/$book/$page/image"
                          $Responsepage = Invoke-WebRequest $url 
                          if ($Responsepage.RawContentLength  -ne 0)
                          	{Out-File -FilePath "$saveFolder\$book\$book $page.webp" -InputObject $Responsepage.RawContent}
                          else 
                          	{break }
                          

                          לקניה והנחות ב KSP כנסו מכאן.
                          למוצרים עם הנחה מכאן.

                          dovid תגובה 1 תגובה אחרונה תגובה ציטוט 0
                          • dovid
                            dovid ניהול @yits נערך לאחרונה על ידי

                            @yits "אבל לא ניתן לייצא אותו אח"כ לקובץ"
                            קורה משהו? מנין לך שהבדיקה עובדת?
                            אגב אני כעת רואה שRawContentLength מחזיר את הגודל של התוכן + הכותרות וממילא זה לא הכי מתאים.
                            כמו"כ הRawContent מכיל כותרות יש לשנות אותו לContet.
                            כל זה בלי קשר לבעיה שאתה אומר שזה לא עובד..

                            אפשר ליצור קשר dovid@tchumim.com

                            תגובה 1 תגובה אחרונה תגובה ציטוט 2
                            • Y
                              yits נערך לאחרונה על ידי yits

                              @dovid אמר בעזרה בהורדה ב PowerShell:

                              אני עושה את זה בתוך לולאה, ואם הקובץ ריק הוא יוצא מהלולאה,
                              אבל במקרה שיש תוכן אני לא מצליח לשמור את הנתונים.

                              גם עם Content זה לא עובד.

                              לקניה והנחות ב KSP כנסו מכאן.
                              למוצרים עם הנחה מכאן.

                              yossiz dovid 2 תגובות תגובה אחרונה תגובה ציטוט 0
                              • yossiz
                                yossiz @yits נערך לאחרונה על ידי yossiz

                                @yits אמר בעזרה בהורדה ב PowerShell:

                                אבל במקרה שיש תוכן אני לא מצליח לשמור את הנתונים.

                                אבל אתה לא מתאר איך ה"לא מצליח" הזה מתממש? יש שגיאה? הקובץ נוצר ריק? הקובץ לא נוצר?

                                📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                                Y תגובה 1 תגובה אחרונה תגובה ציטוט 2
                                • Y
                                  yits @yossiz נערך לאחרונה על ידי

                                  @yossiz אמר בעזרה בהורדה ב PowerShell:

                                  @yits אמר בעזרה בהורדה ב PowerShell:

                                  אבל במקרה שיש תוכן אני לא מצליח לשמור את הנתונים.

                                  אבל אתה לא מתאר איך ה"לא מצליח" הזה מתממש? יש שגיאה? הקובץ נוצר ריק? הקובץ לא נוצר?

                                  נוצר קובץ לא תקין.

                                  לקניה והנחות ב KSP כנסו מכאן.
                                  למוצרים עם הנחה מכאן.

                                  dovid תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                  • dovid
                                    dovid ניהול @yits נערך לאחרונה על ידי dovid

                                    @yits סוף סוף אתה כותב משהו, לא מתאים לאיש עם ידע טכני כמוך להגיד "לא עובד" כזה סתמי!
                                    תשנה את ה$Responsepage.RawContent ל$Responsepage.Content.

                                    אפשר ליצור קשר dovid@tchumim.com

                                    תגובה 1 תגובה אחרונה תגובה ציטוט 2
                                    • dovid
                                      dovid ניהול @yits נערך לאחרונה על ידי

                                      @yits אמר בעזרה בהורדה ב PowerShell:

                                      גם עם Content זה לא עובד.

                                      סליחה, החמצתי.
                                      אם ככה אני לא יודע.

                                      אפשר ליצור קשר dovid@tchumim.com

                                      תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                      • yossiz
                                        yossiz נערך לאחרונה על ידי

                                        הממ.. זה בעייתי...
                                        https://stackoverflow.com/questions/24708859

                                        📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                                        תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                        • yossiz
                                          yossiz נערך לאחרונה על ידי yossiz

                                          @yits זה נראה קצת בעייתי להעביר את המידע של Invoke-WebRequest אם זה מידע בינארי כי זה מומר ל-string,
                                          נראה לי שהכי קל להשתמש בקוד שלי ולכתוב תנאי אחרי ההורדה שאם ה-contentLength הוא 0 למחוק את הקובץ ולהפסיק את הלולאה.
                                          משהו כזה:

                                          $ResponsePage = Invoke-WebRequest $url -OutFile "$saveFolder\$book\$book $page.webp" -passThru
                                          if ($Responsepage.RawContentLength  -eq 0) {
                                              rm "$saveFolder\$book\$book $page.webp"
                                              break
                                          }
                                          

                                          📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                                          תגובה 1 תגובה אחרונה תגובה ציטוט 3
                                          • dovid
                                            dovid ניהול נערך לאחרונה על ידי

                                            מה זה הסיפור הזה שלח תשובה ריקה? זה לא הכי נורמלי.
                                            זה מחזיר OK כלומר 200? יש מצב לכתובת דוגמה כזו?

                                            כשהכרתי את PowerShell אז התלהבתי שאוכל לעשות בקלות קודים לפעולות קטנות במחשב כיוצא באלו,
                                            אבל איבדתי את ההתלהבות ברגע שגיליתי את LinqPad שמאפשר להריץ בקלות C#.
                                            השפה והשימוש בסקריפטים של powershell או בש (וק"ו batch) ממש קשים לי.

                                            אפשר ליצור קשר dovid@tchumim.com

                                            yossiz תגובה 1 תגובה אחרונה תגובה ציטוט 2
                                            • yossiz
                                              yossiz @dovid נערך לאחרונה על ידי yossiz

                                              @dovid אמר בעזרה בהורדה ב PowerShell:

                                              מה זה הסיפור הזה שלח תשובה ריקה? זה לא הכי נורמלי.
                                              זה מחזיר OK כלומר 200? יש מצב לכתובת דוגמה כזו?

                                              (אני עונה במקום @yits כי אני יודע באיזה אתר מדובר)
                                              כן, זה מחזיר 200... זה באמת לא הכי נורמלי, אבל מה לעשות... ¯/_(ツ)_\¯

                                              📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                                              Y תגובה 1 תגובה אחרונה תגובה ציטוט 3
                                              • Y
                                                yits @yossiz נערך לאחרונה על ידי

                                                @yossiz @yossiz
                                                עובד לי מצוין (עם הפתרון של @yossiz).

                                                לקניה והנחות ב KSP כנסו מכאן.
                                                למוצרים עם הנחה מכאן.

                                                תגובה 1 תגובה אחרונה תגובה ציטוט 2
                                                • 1 / 1
                                                • פוסט ראשון
                                                  פוסט אחרון
                                                בא תתחבר לדף היומי!