எப்படி பவர்ஷெல் Foreach, போது, ​​மற்றும் பிற சுழல்கள் வேலை

எப்படி பவர்ஷெல் Foreach, போது, ​​மற்றும் பிற சுழல்கள் வேலை

நிரலாக்கத்தைக் கற்றுக்கொள்வதில் ஒரு முக்கியமான முதல் படி சுழல்களுடன் வேலை செய்வது. அதிர்ஷ்டவசமாக, பவர்ஷெல் உங்கள் திறமைகளுடன் தொடர்ந்து வளர்ந்து வருகிறது.





ஐபோன் 6 எஸ் மற்றும் ஸ்பீக்கர் வேலை செய்யவில்லை

நேரத்தையும் முயற்சியையும் மிச்சப்படுத்த நீங்கள் தினமும் பயன்படுத்தும் கட்டளைகளை சுழல்களுக்குள் வடிவமைக்கலாம். MakeUseOf இல் மேலும் கட்டுரைகளைப் படிக்கும் முக்கியமான வேலையைச் செய்யும்போது உங்கள் ஸ்கிரிப்டுகள் அதிக தூக்குதலைச் செய்கின்றன!





ஒவ்வொரு சுழல்களுக்கும் பவர்ஷெல்: மேம்பட்ட தரவு கையாளுதலுக்கான கதவு

ForEach என்பது ForEach-Object க்கான மாற்றுப்பெயர். (பவர்ஷெல்லில் ஒரு கட்டளைக்கான மாற்றுப்பெயர் வெறுமனே குறுக்குவழி.) பவர்ஷெல் தரவை கையாளும் விதத்தைப் பற்றி பேச இது ஒரு நல்ல நேரம்.





பெரும்பாலான நவீன நிரலாக்க மொழிகளைப் போலவே, பவர்ஷெல் பொருள் சார்ந்ததாகும். பவர்ஷெல்லில் உள்ள அனைத்தும் ஒரு பொருள், அதாவது மாறிகள் கூட நீட்டிக்கப்பட்ட பண்புகள் மற்றும் செயல்பாடுகளை கொண்டுள்ளது . அந்த சொத்து ஏன் உங்கள் தேடல்களை ஒரு மாறிக்கு அமைக்கலாம் மற்றும் முடிவுகளின் வரிசையுடன் முடிவடையும்.

$yourVar = Get-ChildItem *
foreach ($file in $yourVar){
Your Steps
}

சில மொழிகளில், இந்த வரிசையை செயலாக்குவது ஒரு மல்டிஸ்டெப் செயல்முறையாக இருக்கும். முதலில், நீளத்தைப் பெற்று ஒவ்வொரு அடியையும் எண்ணுங்கள்.



பவர்ஷெல்லில், நீங்கள் வரிசை வழியாகச் சென்று ஒவ்வொரு செயலையும் ForEach ஐப் பயன்படுத்தி செய்யுங்கள். இது உங்களுக்கு பல வரிகளைச் சேமிக்கிறது, இது உங்களுக்கு நீண்ட ஸ்கிரிப்ட் கிடைத்தால் உதவியாக இருக்கும். எடுத்துக்காட்டாக, பின்வருவது ஒரு சிறிய ஸ்கிரிப்ட் ஆகும், இது ஓரிரு பவர்ஷெல் ஃபோர் ஈச் சுழல்களைப் பயன்படுத்தும். இது 30 நாட்களில் நீங்கள் திறக்காத உங்கள் அனைத்து கோப்புகளின் ஜிப் காப்பகத்தை உருவாக்குகிறது.

ForEach சுழல்களைப் பயன்படுத்தி ஒரு கோப்பு காப்பக அமைப்பை உருவாக்குதல்

படிகளை உடைப்போம். நீ பயன்படுத்து குழந்தை-பொருள் கிடைக்கும் ஆவணங்கள் கோப்புறையில் அனைத்து கோப்புகளையும் பெற. சுற்றுச்சூழல் மாறி $ env: USERPROFILE தற்போதைய சுயவிவரத்தைப் பயன்படுத்தி ஸ்கிரிப்டை இயக்குகிறது. இந்த மாறி ஒரு கடின குறியீடான பாதையை விட மிகவும் கையடக்கமானது. அந்த தேடலின் முடிவுகள் மாறிக்கு ஒதுக்கப்படும் $ MyDocs . நாங்கள் ஒவ்வொன்றையும் படிப்பதன் மூலம் எங்கள் ForEach வளையத்தை உருவாக்குகிறோம் $ MyDocs இல் $ Doc .





$oldDocs = @()
$MyDocs = Get-ChildItem -Path '$($env:USERPROFILE)Documents' -Recurse
foreach ($doc in $MyDocs){
if($doc.LastAccessTime -lt $(Get-Date).addDays(-30)){
$oldDocs += $doc
}
}
$ArchiveFolder = New-Item -Path '$($env:USERPROFILE)Documents$((Get-Date -Format MMddyy).toString())' -ItemType Directory
foreach ($doc in $oldDocs){
Move-Item -Path $doc.FullName -Destination '$($ArchiveFolder.FullName)$($doc.Name)' -Confirm $false
}
$source = $ArchiveFolder.FullName
$destination = '$($env:USERPROFILE)Documents$($ArchiveFolder.Name).zip'
Add-Type -AssemblyName 'system.io.compression.filesystem'
[io.compression.zipfile]::CreateFromDirectory($source, $destination)
if(test-path $destination){
Remove-Item -Path $ArchiveFolder -Recurse -Confirm $false
}

வளையத்தின் உள்ளே, ஒவ்வொரு கோப்பும் இருக்கிறதா என்று சோதிக்கிறோம் கடைசி அணுகல் நேரம் சொத்து 30 நாட்களுக்கு மேல் பழமையானது. இதை கொண்டு நாங்கள் பெறுகிறோம் கிடைக்கும் தேதி cmdlet, மற்றும் பயன்படுத்தி AddDays எதிர்மறை முப்பது கொண்ட செயல்பாடு. அது இருந்தால், நாங்கள் கோப்பை சேர்க்கிறோம் $ myOldDocs வரிசை. கோப்பு வரிசைப்படுத்தல் முடிந்ததும், நாங்கள் எங்கள் முடிக்கப்பட்ட வரிசையை எடுத்து ஒரு ஜிப் கோப்பை உருவாக்குகிறோம். நெட். நீங்கள் அதை சரியாகப் புரிந்து கொள்ளாவிட்டால் கவலைப்பட வேண்டாம் - நீங்கள் குறியீட்டை திருடலாம் இந்த டெக்நெட் உதவி ஆவணம் .

இங்கே என்ன நடக்கிறது என்பதை உடைக்க: எங்கள் பழைய கோப்புகள் அனைத்தையும் 30 நாட்களுக்கு மேல் இன்றைய தேதிக்கு பெயரிடப்பட்ட புதிய கோப்பகத்திற்கு நகர்த்துவோம். அந்த கோப்புறை கட்டப்பட்டவுடன், அதே பெயரில் ZIP காப்பகத்தை நாம் உருவாக்க வேண்டும். காப்பகம் வெற்றிபெற்றுள்ளதா மற்றும் .ZIP கோப்பு இருக்கிறதா என்று சோதித்து புதிய கோப்புறையை நீக்குவோம். ஒரு மாதத்திற்கு ஒருமுறை இயக்க திட்டமிடப்பட்ட பணியாக இதை அமைக்கவும். நீங்கள் ஒரு சிறிய இடத்தை சேமித்து உங்கள் ஆவணங்கள் கோப்புறையை சுத்தமாக வைத்திருப்பீர்கள்.





போது மற்றும் போது போது: நிலையில் சுழல்கள்

ஒரு குறிப்பிட்ட நிபந்தனை பூர்த்தி செய்யப்படும்போது மட்டுமே நீங்கள் ஒரு வளையத்தை இயக்க விரும்பினால், நீங்கள் ஒரு சுழற்சியைப் பயன்படுத்துகிறீர்கள். எண்ணிக்கையைக் கண்காணிக்க நீங்கள் ஒரு மாறியைப் பயன்படுத்துகிறீர்கள் என்றால், முதலில் அதை அமைக்கவும்.

i=0
while(i<10){
Your Steps
i+=1
}

பிரச்சனை என்னவென்றால், நீங்கள் ஒரு கவுண்டரைப் பயன்படுத்தவில்லை என்றால், சோதனை உண்மையாக இருந்தாலும் உங்கள் குறியீட்டை ஒரு முறையாவது இயக்க வேண்டும். கீழே உள்ள எடுத்துக்காட்டு ஸ்கிரிப்ட்டின் வழக்கு இதுதான். அந்த சந்தர்ப்பங்களில், நீங்கள் ஒரு Do-while லூப்பைப் பயன்படுத்த விரும்புகிறீர்கள். தொடரியல் சற்று வித்தியாசமானது.

do{
Your Steps
}while(Conditional Statement)

ஒரு புதிய புரோகிராமருக்கு இவற்றைப் பயன்படுத்துவது தெளிவாகத் தெரியவில்லை. வழக்கமான நாளுக்கு நாள் ஸ்கிரிப்ட்டைச் செய்வதால், நீங்கள் அடிக்கடி அவற்றைச் சந்திக்க மாட்டீர்கள். ஒரு செயல்முறையின் வெற்றியைச் சோதிப்பதற்காக ஒரு தற்காலிக டைமரை உருவாக்குவதே அவை குறிப்பாக பயனுள்ளதாக இருக்கும்.

வெளிப்புற வன் விண்டோஸ் 10 ஐக் கண்டுபிடிக்க முடியவில்லை

ரிமோட் மெஷினை மறுதொடக்கம் செய்ய 15 நிமிடங்களுக்குள் திரும்ப வரவில்லை எனில் ஒரு விரைவான ஸ்கிரிப்டை உருவாக்க உள்ளோம். இந்த சூழ்நிலை இது ஒரு வீட்டு சேவையகம் அல்லது மற்ற இயந்திரம் அடிக்கடி மறுதொடக்கம் செய்யாது என்று கருதுகிறது. உங்கள் கணினி பொதுவாக வேகமாக வந்தால் நேரத்தை சரிசெய்ய தயங்க.

மறுதொடக்கம் செய்து சரிபார்க்கவும்: Do-while லூப்பைப் பயன்படுத்துதல்

இந்த ஸ்கிரிப்ட் கொஞ்சம் எளிமையானது. முதலில், நீங்கள் பயன்படுத்தவும் மறுதொடக்கம்-கணினி தொலை இயந்திரத்தை மறுதொடக்கம் செய்ய கட்டளை. (மறுதொடக்கம் கட்டளைகளுக்கு நாங்கள் இங்கே ஒரு போலி ஐபியைப் பயன்படுத்தினோம், இதை உங்கள் கணினியின் டிஎன்எஸ்/ஐபி மூலம் மேலெழுத மறக்காதீர்கள்). பின்னர் எதிர் மாறியை உருவாக்கவும், நான் மேலும் அதை 0. ஆக அமைக்கவும். அடுத்து, ஸ்டார்ட்-ஸ்லீப் மூலம் ஸ்க்ரிப்டை 300 வினாடிகள் (ஐந்து நிமிடங்கள்) நிறுத்துவதன் மூலம் உங்கள் டூ லூப் உள்ளது. இரண்டாவது கட்டளை ஒன்று கவுண்டரில் சேர்க்கிறது.

Restart-Computer -ComputerName 127.0.0.1
i=0
do{
Start-Sleep -Seconds 300
$i += 1
}while((!(Test-Connection 127.0.0.1 -Quiet)) -or $i -gt 3)
if($i -gt 3){
Write-Ouput 'Remote Machine not responding, please check.'
}
else{
Write-Output 'Reboot Succeeded'
}

அப்போது எங்களிடம் இருக்கும் போது அளவுகோல் உள்ளது. ஒரு தோல்வி ஒரு எச்சரிக்கையை உருவாக்குகிறது என்பதை உறுதிப்படுத்த நாங்கள் ஒரு Or சோதனையைப் பயன்படுத்துகிறோம். மாற்றாக ஸ்கிரிப்ட் லூப்பிங் என்பது ரிமோட் மெஷினுக்கு முடிவில்லாமல் காத்திருக்கிறது. இயந்திரத்தை சரிபார்க்க, நாங்கள் பயன்படுத்துகிறோம் சோதனை-இணைப்பு cmdlet. எளிமைக்காக, இது பவர்ஷெல்லுக்கான பிங் ஆகும். நாங்கள் அளவுருவைச் சேர்க்கிறோம் -அமைதியாக இது பாக்கெட்டுகளின் முடிவுகளை விட உண்மை அல்லது பொய் என்று திரும்பும்படி கட்டாயப்படுத்துகிறது. கவுண்டர் மூன்றுக்கு மேல் இருக்கிறதா என்று ஆர் அறிக்கையின் இரண்டாவது பகுதி சரிபார்க்கிறது.

லூப் முடிந்தவுடன், நாம் வெளியீட்டை உருவாக்க வேண்டும். அதாவது நாங்கள் எங்கள் கவுண்டரை சரிபார்க்க வேண்டும். இது விரைவான if/வேறு அறிக்கை. இது மூன்றுக்கும் அதிகமாக இருந்தால், ரிமோட் இயந்திரம் பதிலளிக்கவில்லை என்று ஸ்கிரிப்ட் வெளியிடுகிறது. அது இல்லையென்றால், மறுதொடக்கம் வெற்றிகரமாக இருந்தது என்று அது வெளிப்படுத்துகிறது.

பிற சுழல்கள்

பவர்ஷெல்லில் வேறு இரண்டு வகையான சுழல்கள் உள்ளன. அவை முந்தைய இரண்டு சுழல்களுடன் ஓரளவு தொடர்புடையவை, அவை பொதுவாகப் பயன்படுத்தப்படுவதில்லை. ஏ ஃபார் லூப் அதே சமயத்தில் உதாரணத்திற்கு வேலை செய்கிறது. மதிப்பீட்டில் உங்கள் அனைத்து அளவுகோல்களையும் அமைத்து, பின்னர் உங்கள் cmdlets ஐ அமைக்கவும்.

for($i = 0;$i -lt 10;$i++){
Your Steps
}

லூப்ஸ் டூ பில் லூப்ஸ் போல இருக்கும் வரை, நீங்கள் ஸ்டேட் ஸ்டேட்மெண்ட்டை லவ் என மாற்றுகிறீர்கள். எடுத்துக்காட்டு ஸ்கிரிப்டில், இது நடத்தையைப் போலவே இருக்கும். இது ஒரு ஸ்டைல் ​​தேர்வாகும், ஆனால் டூ பில் மற்ற சூழ்நிலைகளில் மிகவும் பல்துறை. நீங்கள் ஒன்றை மட்டும் நினைவில் வைத்திருந்தால், Do Do மிகவும் பயனுள்ளதாக இருக்கும்.

இந்த ஒவ்வொரு சுழல்களுக்கும் பவர்ஷெல் உதவி உள்ளது. சேர்ப்பதன் மூலம் நீங்கள் உதவியைப் பெறலாம் பற்றி Get-Help இல் லூப் பெயருக்கு முன். ஒவ்வொரு வகைக்கும் உதாரணங்களையும் பிற குறிப்புகளையும் நீங்கள் பார்க்கலாம். நீங்கள் சிக்கிக்கொண்டால் இவை உதவியாக இருக்கும்.

உங்களுடன் தொடர்ந்து வளரவும்

இந்த கட்டத்தில், வலுவான ஸ்கிரிப்ட்களை உருவாக்கத் தொடங்க உங்களுக்கு பெரும்பாலான திறன்கள் உள்ளன. உங்கள் வீட்டு ரிக் தானியங்கி அல்லது வேலை நேரத்தில் சேமிப்பு, சுழல்கள் உங்கள் ஸ்கிரிப்டுகள் இன்னும் செய்ய உதவும். பிழை கையாளுதலுடன் இந்த சுழல்களை இணைப்பது உங்கள் ஸ்கிரிப்ட்டை அடிப்படைகளுக்கு அப்பால் நகர்த்துகிறது. இது மேம்பட்ட மொழிகளுக்கான கதவைத் திறக்கிறது.

சுழல்களைப் பயன்படுத்தி நீங்கள் உருவாக்கிய புத்திசாலி பவர்ஷெல் ஸ்கிரிப்ட் என்ன? கருத்துகளில் எங்களுடன் பகிர்ந்து கொள்ளுங்கள்.

பகிர் பகிர் ட்வீட் மின்னஞ்சல் வட்டு இடத்தை விடுவிக்க இந்த விண்டோஸ் கோப்புகள் மற்றும் கோப்புறைகளை நீக்கவும்

உங்கள் விண்டோஸ் கணினியில் வட்டு இடத்தை அழிக்க வேண்டுமா? வட்டு இடத்தை விடுவிக்க பாதுகாப்பாக நீக்கக்கூடிய விண்டோஸ் கோப்புகள் மற்றும் கோப்புறைகள் இங்கே.

அடுத்து படிக்கவும்
தொடர்புடைய தலைப்புகள்
  • நிரலாக்க
  • பவர்ஷெல்
  • ஸ்கிரிப்டிங்
எழுத்தாளர் பற்றி மைக்கேல் மெக்கானல்(44 கட்டுரைகள் வெளியிடப்பட்டன)

அவர்கள் அழிந்தபோது மைக்கேல் மேக் பயன்படுத்தவில்லை, ஆனால் அவர் ஆப்பிள்ஸ்கிரிப்டில் குறியிட முடியும். அவர் கணினி அறிவியல் மற்றும் ஆங்கிலத்தில் பட்டம் பெற்றார்; அவர் இப்போது மேக், ஐஓஎஸ் மற்றும் வீடியோ கேம்களைப் பற்றி சிறிது நேரம் எழுதினார்; அவர் ஒரு தசாப்தத்திற்கும் மேலாக பகல்நேர ஐடி குரங்காக இருந்தார், ஸ்கிரிப்டிங் மற்றும் மெய்நிகராக்கத்தில் நிபுணத்துவம் பெற்றவர்.

கேமரா ரோலில் யூடியூப் வீடியோவைப் பதிவிறக்கவும்
மைக்கேல் மெக்கன்னலின் மேலும்

எங்கள் செய்திமடலுக்கு குழுசேரவும்

தொழில்நுட்ப குறிப்புகள், மதிப்புரைகள், இலவச மின் புத்தகங்கள் மற்றும் பிரத்யேக ஒப்பந்தங்களுக்கு எங்கள் செய்திமடலில் சேரவும்!

குழுசேர இங்கே சொடுக்கவும்