@מישהו12 שאלה מעניינת...
ברמת העיקרון, פלט של תהליך - מוזרם לסטרים שמכונה STDOUT (אני מדבר על לינוקס, אני לא כ"כ יודע איך זה פועל בווינדוס.. אני מאמין שבדרך דומה). בלינוקס (Unix ליתר דיוק), ישנה פקודה שמאפשרת להזרים את הסטרים (במקרה שלנו STDOUT, ניתן לעשות זאת גם עם הסטרים של השגיאות) לקובץ או לסטרים אחר מלבד לפלט שיוצג במסך - באמצעות הפקודה tee
. דוג':
<command> | tee output.txt
אם אתה רוצה לכלול STDERR שזה סטרים של השגיאות, תוסיף הפנייה של הזרם של השגיאות לנתיב הסטנדרטי של הפלט לפני הפייפ ככה:
<command> 2>&1 | tee output.txt
הפעולה הנ"ל הינה פעולה מוכרת ונקראת Redirect. ביצוע של Redirect נעשה באמצעות הסימנים >
וגם <
. במקרה שלנו, אנחנו מבצעים redirect לסטרים של השגיאות לתוך מה שנקרא file descriptor
שפירושו בגדול הוא 'מזהה קובץ השייך לתהליך' (זה מורכב, אבל זה על קצה המזלג) ובמקרה שלנו אנחנו משתמשים ב-STDOUT כאותו file descriptor
.
במקרה שלך אם הבנתי אותך נכון, אתה רוצה להוסיף לקובץ את הפלט, ולא לדרוס את התוכן שלו אם קיים. בשביל זה תצטרך להשתמש ב-flag של הפקודה tee שנכתב כ -a
כך:
<command> 2>&1 | tee -a output.txt
יש על הנושא הרבה מדריכים, תנסה לקרוא אולי את זה (נראה די מוצלח):
https://www.computerhope.com/jargon/f/file-descriptor.htm
אני חוזר ומדגיש: אם אתה צריך בירור לווינדוס, אני לא מבין בזה - אבל אתה יכול לנסות לחפש בגוגל על הפניות של STDOUT לתוך סטרימים אחרים בנוסף למסך במערכת ווינדוס, זה בגדול הרעיון.
עריכה: זה גם נראה מדריך טוב https://www.geeksforgeeks.org/tee-command-linux-example