בעיה בסקריפט VBS

eranhuba

New member
בעיה בסקריפט VBS

שלום חברים.

בניתי סקריפט מאוד בסיסי שאמור להעתיק קבצים מתיקייה בשרת לתיקיה במחשב המקומי. משום מה אני מקבל הודעת שגיאה של PATH NOT FOUND בשורה 4. מה שמוזר הוא שאם אני מעתיק כל אחד מהיעדים (המקור ממנו מועתקים הקבצים והיעד אליו הם מועתקים) ושם אותם בשורת ההתחל במחשב, היעד נפתח, ז"א שהיעדים הנ"ל קיימים ונגישים. מה שמוביל לשאלה - מה הבעיה?

הנה הסקריפט:

Dim objFSO
Const OverwriteExisting = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "\\tav-dc1\M\USERS\Signature\*.jpg", "%APPDATA%\Microsoft\Signatures\", OverwriteExisting
 

eranhuba

New member
תוספת מידע

ד"א, הקבצים במקור יושבים בתיקייה שממופת לכל המשתמשים בחברה, אז כמובן שקודם כל ניסיתי את זה:

M:\Signature\*.jpg

במקום:

\\tav-dc1\M\USERS\Signature\*.jpg

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

eranhuba

New member
ה M זה האות כונן

ה M זה האות כונן. בלי זה זה לא רץ אפילו בשורת פקודה.
 

ddoottaann

New member
אני יודע

אתה מצליח לגשת ל \tav-dc1\USERS\Signature\*.jpg ?

מה היא הספרייה המשותפת?
 

eranhuba

New member
לא עובד גם ללא ה M

הורדתי את ה M מהסקריפט, אותה הודעת שגיאה.
 

DuuGi

New member
למה לכתוב סקריפט?

ROBOCOPY יעשה לך את אותה עבודה ובאופן יותר יעיל.
 
אולי הבעיה בנסיון לפרוש את משתנה הסביבה?

לפחות לפי MSDN צריך להשתמש במתודה

ExpandEnvironmentStrings

כדי לפרוש משתני סביבה:
http://msdn.microsoft.com/en-us/library/dy8116cf(v=vs.84).aspx
ודוגמא לשימוש עם הרחבות (לדעתי פספוס ענק של MSDN שזה לא נכלל אצלם באופן מובנה)
http://www.robvanderwoude.com/vbstech_data_environment.php

הערת אגב קטנה:
כמתודולגיית תיקון באגים בקוד - קודם כל מבודדים את הבעיה.
אם יש בעית PATH NOT FOUND בשורה בה יש יותר מ PATH אחד - כותבים סקריפטים קצרצרים שלא עושים כלום, רק מנסים לגשת לכל PATH בנפרד, כדי לזהות מי באמת בעייתי.
זה נכון באופן כללי, כמובן.
כמו כן כדאי (ורצוי) להשתמש באופן חופשי ביותר במתודות wscript.echo בזמן דיבוג כדי לראות מה שורת הפקודה הבאה, איך המערכת קוראת את שורת הפקודה, ומה התוצאה המלאה של ביצוע השורה...

או פשוט להשתמש בדיבגר ייעודי. יש חינמי של MS (רק עד גירסאות 2003) ויש בתשלום של חברות שונות.
 

doom23

New member
שים לב

לפחות איך שזה נראה בתפוז
"%APPDATA%\Microsoft\Signatures\"

בPATH השני אחרי microsoft\SIGNATURES יש סלאש \

תמחק אותו שיהיה את הPATH בלי סלאש בסוף רק גרשיים
 
למעלה