-
@אוריי אמר בהורדה אוטומטית של קבצי csv מאתר ftp:
ואת זה הקוד שהבאת לי לא עושה השאלה היא האם תוכל לתת לי קוד שמוריד קובץ בסיומת csv ישירות מהFTP
# Config $Username = "XXXX" $Password = "XXXX" $.LocalFile = "C:/testfolder/XXXXX/XXXX.csv" $RemoteFile = "ftp://XXXXX/Latest/XXXXX/XXXX.csv" # Create a FTPWebRequest $FTPRequest = [System.Net.FtpWebRequest]::Create($RemoteFile) $FTPRequest.Credentials = New-Object System.Net.NetworkCredential($Username,$Password) $FTPRequest.Method = [System.Net.WebRequestMethods+Ftp]::DownloadFile $FTPRequest.UseBinary = $true $FTPRequest.KeepAlive = $false # Send the ftp request $FTPResponse = $FTPRequest.GetResponse() # Get a download stream from the server response $ResponseStream = $FTPResponse.GetResponseStream() # Create the target file on the local system and the download buffer $LocalFileFile = New-Object IO.FileStream ($LocalFile,[IO.FileMode]::Create) [byte[]]$ReadBuffer = New-Object byte[] 9213 # Loop through the download do { $ReadLength = $ResponseStream.Read($ReadBuffer,0,9213) $LocalFileFile.Write($ReadBuffer,0,$ReadLength) } while ($ReadLength -ne 0)
-
@shraga
כפי איך שהבנתי הכנסתי את הכתובת ip בשורה 9 לאחר ה \\ftp
תכלס הוא מחזיר לי שגיאה
עריכה: מצאתי את הבעיה בשורה 7 משום מה אצלך היה נקודה בתחילת השורה מה שגרם לו להחזיר שגיאה..$.LocalFile = "C:/testfolder/XXXXX/XXXX.csv"
מחקתי אותה וזה עובד מעולה
-
@shraga אמר בהורדה אוטומטית של קבצי csv מאתר ftp:
@אוריי אמר בהורדה אוטומטית של קבצי csv מאתר ftp:
רק עוד פרט קטן חסר לי איך אני סוגר את הקובץ כדי שאני יוכל לקרוא לקובץ והוא יעדכן אוטומטי את כל הפרטים
לא ממש הבנתי, אם תוכל להרחיב.
יש לי מערכת שאני רוצה להריץ כמה שלבים אחד לאחר השני כאשר הראשון מסתיים
פחות או יותר סדר השלבים הוא קבלת הוראה מapi להתחיל לרוץ- בוט (או כל דבר אחר) שמוריד קבצים מהftp
- לאחר מכן להריץ קובץ vbs שמריץ קוד vba על קובץ אחר
- שליחת הוראה לapi שהסתיים
- שליחת הקובץ פלט באימייל (נעשה ע"י סקריפט) לאחר כל הפעולות האלו..
עכשיו מה שאני רוצה לעשות זה קובץ בוט או כל דבר אחר שברגע שה api מפעיל אותו הוא יוריד קבצים חדשים מה ftp ולאחר מכן הוא יפעיל את הקובץ שמפעיל את ה vba וכו' וכו' ...
מה שאני צריך לעשות עם הקוד הזה שהוא יעבוד טוב בצורה סגורה ועם אפשרות שבעת שאני מפעיל אותו הוא מריץ את השלבים הבאים... -
@shraga
אני לא בונה את ה api
זה פשוט מערכת של מישהו של שליחת קובץ במייל עם שילוב של עוד כמה מערכות והוא לוקח את הקובץ מהשרת שלי והוא בודק אם קיימים עדכונים ואם קיימים עדכונים הוא קורא לפוורשאל לעדכן את הקבצים ולאחר מכן הוא לוקח את הקובץ המעודכן ושולח אותו במייל... -
@shraga
אני ינסה שוב להסביר מה שאני צריך זה כך
מערכת של עידכון קובץ לפי פרמטרים שהגדרתי ב vba ושזה יעבוד אוטומטי מתי שה api ישלח בקשה (כלומר יקרא לקובץ) ויתן בסיום ל api עידכון שהתהליך הסתיים..
כל השאר איך לגשת לשרת ולקובץ שלי מה api זה לא מעניין אותי כרגע
קודם כל שיהיה לי מערכת אוטומטית שעושה את השלבים האלו:- בוט (או כל דבר אחר) שמוריד קבצים מהftp
- לאחר מכן להריץ קובץ vbs שמריץ קוד vba על קובץ אחר
- שליחת הוראה לapi שהסתיים
אם חסרים לך עוד פרטים אוכל להשלים לך במייל שלי בחתימה
-
@אוריי אמר בהורדה אוטומטית של קבצי csv מאתר ftp:
בוט (או כל דבר אחר) שמוריד קבצים מהftp
לאחר מכן להריץ קובץ vbs שמריץ קוד vba על קובץ אחראת השאר לא הבנתי :(, נמתין לקהל שאולי פחות קשה הבנה ממני...
לגבי זה -
- זה אמור לעבוד במחשב ספציפי בלבד או במספר מחשבים?
- יצרת קובץ בסיומת .ps להורדת ועדכון הcsv? הוא עובד תקין?
- יש לך כבר את הקובץ vbs?
-
@אוריי אולי בגלל שזה עובד רק בהרצה דרך 32 ביט,
תיצור סקריפט נוסף שיריץ את הסקריפט במצב 32 ביט (תשנה את הנתיב C:\downloader.ps1 לנתיב הנכון של סקריפט ההורדה):$script = Start-Job -ScriptBlock { powershell.exe -ExecutionPolicy RemoteSigned -file "C:\downloader.ps1" } -RunAs32
עובד?
אם כן, מה שנשאר זה לארוז את הכל לסקריפט אחד.
-