ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
13 visibility
موضوع: ویندوز توسط:
یکی از اولین کارهایی که هنگام یادگیری یک زبان کامپیوتری جدید انجام می دهید، یادگیری نحوه انجام ورودی و خروجی است. نحوه انجام خروجی را از نکته مقدمه PowerShell یاد گرفتیم. اگر یادتان باشد ما از cmdlet Write-Output استفاده کردیم. حالا وقت آن است که یاد بگیرید چگونه یک فایل را بخوانید و خروجی آن را روی صفحه نمایش دهید.
فرض کنید یک فایل متنی به نام "C:TempTemp.txt" داریم و شامل ده خط است. ساده ترین راه برای نمایش این خطوط استفاده از cmdlet Get-Content است. اجرای این cmdlet در برابر فایل ما به این صورت است: (شکل 1 را ببینید.)
image
شکل 1. Get-Content یک فایل را می خواند.
اگر بخواهید فقط سه خط اول فایل را نمایش دهید چه؟ راه های مختلفی برای انجام آن وجود دارد، اما شاید ساده ترین راه استفاده از متغیرها باشد. در PowerShell، یک متغیر می تواند هر نوع داده ای باشد و نام متغیر با "$" شروع می شود. نمونه هایی از نام متغیرها عبارتند از "$myName"، "$numbers"، "$today"، و غیره. شما یک مقدار را با علامت "=" به متغیر اختصاص می دهید، بنابراین یک فرمان قانونی PowerShell خواهد بود.
PS> $myName = Barry
با این پس زمینه، اکنون به اندازه کافی می دانیم که سه خط اول فایل خود را نمایش دهیم. ما محتویات فایل را به متغیری به نام $lines اختصاص می دهیم و سپس سه خط اول آن را نمایش می دهیم: (شکل 2 را ببینید.)
image
شکل 2. با استفاده از یک متغیر.
در اینجا، محتوای فایل را به متغیر $lines (که در واقع یک آرایه است) اختصاص می دهیم و از نحو "[0..2]" برای دسترسی به عناصر 0، 1 و 2 آرایه استفاده می کنیم. عنصر 0 خط اول است. عنصر 1 خط دوم است. و عنصر 2 خط سوم است.
دسترسی به آخرین خطوط آرایه به همین سادگی است. این کار با استفاده از زیرنویس های منفی انجام می شود، بنابراین $line[-1] آخرین خط آرایه است. $line[-2] خط دوم تا آخر آرایه است. شکل زیر نحوه نمایش سه خط آخر فایل ما را نشان می دهد: (شکل 3 را ببینید.)
image
شکل 3. دسترسی به یک آرایه با استفاده از زیرنویس های منفی.
راه دیگر برای بازیابی متن از یک فایل، جستجوی آن و نمایش نتایج است. برای جستجوی متن در PowerShell از cmdlet Select-String استفاده می کنید. Select-String سوئیچ های زیادی می گیرد که اگر در cmdlet درخواست کمک کنید می توانید آنها را ببینید، اما یک فرم ساده نیاز دارد که فقط نام فایل و الگوی مورد نظر خود را مشخص کنید. بنابراین اگر بخواهم تمام خطوط فایل خود را که حاوی متن "خط" هستند (که هر خط است) پیدا کنم، می توانم این کار را به این صورت انجام دهم: (شکل 4 را ببینید.)
image
شکل 4. جستجوی یک فایل برای یک الگو.
Select-String بسیار قدرتمند است زیرا با استفاده از عبارات منظم جستجو می کند. (نکته دیگری با عنوان "مقدمه ای بر عبارات با قاعده" وجود دارد.) بنابراین اگر می خواهید تمام خطوطی را که با "l" شروع می شوند و با یک رقم ختم می شوند (یعنی همه خطوط به جز خط 10) پیدا کنید، به نظر می رسد. این: (شکل 5 را ببینید.)
image
شکل 5. جستجوی یک فایل با استفاده از یک عبارت منظم.
ما در مورد خواندن فایل ها زیاد صحبت کرده ایم، بنابراین باید با صحبت در مورد نوشتن فایل ها صحبت کنیم. البته می توانید از کاراکتر آشنای «>» برای تغییر مسیر خروجی خود به فایل استفاده کنید، اما در PowerShell می توانید از cmdlet Out-File نیز برای ارسال خروجی به فایل استفاده کنید.
فرض کنید می خواستید لیستی از تمام فرآیندهای فعال در سیستم خود دریافت کنید. cmdlet برای انجام این کار Get-Process است. بخشی از خروجی Get-Process در اینجا نشان داده شده است: (شکل 6 را ببینید.)
image
شکل 6. خروجی جزئی از Get-Process.
توجه داشته باشید که خط هشتم از آخرین خط کوتاه شده است. این خط با "vmware-usbarbitrat..." به پایان می رسد. اگر بخواهیم به سادگی این خروجی را به یک فایل بفرستیم، فایل نیز حاوی این خط کوتاه خواهد بود. درعوض، می‌توانیم از سوئیچ «-width» Out-File استفاده کنیم تا نشان دهیم که عرض بیشتری می‌خواهیم تا از برش جلوگیری کنیم. در اینجا دستور ما برای دریافت فرآیندها، لوله کردن خروجی به Out-File و تعیین عرض برای خروجی است:
PS C:Bat> Get-Process | Out-File C:TempTemp2.txt -width 100
اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوال مشابهی یافت نشد

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

93 نفر آنلاین
0 عضو و 93 مهمان در سایت حاضرند
بازدید امروز: 2977
بازدید دیروز: 21973
بازدید کل: 15275844
...