పవర్‌షెల్ ఫోర్చ్, ఉండగా, మరియు ఇతర లూప్‌లు ఎలా పని చేస్తాయి

పవర్‌షెల్ ఫోర్చ్, ఉండగా, మరియు ఇతర లూప్‌లు ఎలా పని చేస్తాయి

ప్రోగ్రామింగ్ నేర్చుకోవడంలో కీలకమైన మొదటి దశ లూప్‌లతో పనిచేయడం. కృతజ్ఞతగా, పవర్‌షెల్ మీ నైపుణ్యాలతో పెరుగుతూనే ఉంది.





అటాచ్‌మెంట్‌లను జిమెయిల్‌లో ఎలా సెర్చ్ చేయాలి

సమయం మరియు కృషిని ఆదా చేయడానికి మీరు ప్రతిరోజూ ఉపయోగించే ఆదేశాలను లూప్‌ల లోపల ఫ్రేమ్ చేయవచ్చు. మీరు MakeUseOf లో మరిన్ని కథనాలను చదివే ముఖ్యమైన పని చేస్తున్నప్పుడు మీ స్క్రిప్ట్‌లు హెవీ లిఫ్టింగ్ చేస్తాయి!





పవర్‌షెల్ ఫర్ ఈచ్ లూప్స్: డోర్ టు అడ్వాన్స్‌డ్ డేటా హ్యాండ్లింగ్

ForEach అనేది ForEach-Object కోసం మారుపేరు. (అలియాస్ అనేది పవర్‌షెల్‌లోని కమాండ్ కోసం షార్ట్‌కట్ మాత్రమే.) పవర్‌షెల్ డేటాను నిర్వహించే విధానం గురించి మాట్లాడటానికి ఇది మంచి సమయం.





చాలా ఆధునిక ప్రోగ్రామింగ్ లాంగ్వేజెస్ లాగా, పవర్‌షెల్ ఆబ్జెక్ట్-ఓరియెంటెడ్. పవర్‌షెల్‌లోని ప్రతిదీ ఒక వస్తువు, అంటే వేరియబుల్స్ కూడా విస్తరించిన లక్షణాలు మరియు విధులు ఉన్నాయి . ఆ ఆస్తి ఎందుకు అంటే మీరు మీ శోధనలను వేరియబుల్‌గా సెట్ చేయవచ్చు మరియు ఫలితాల శ్రేణిని ముగించవచ్చు.

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

కొన్ని భాషలలో, ఈ శ్రేణిని ప్రాసెస్ చేయడం అనేది మల్టీస్టెప్ ప్రక్రియ. మొదట, పొడవును పొందడం మరియు ప్రతి దశను లెక్కించడం.



పవర్‌షెల్‌లో, మీరు శ్రేణి ద్వారా అడుగు పెట్టండి మరియు ForEach ఉపయోగించి ప్రతిదానిపై చర్యను చేయండి. ఇది మీకు అనేక పంక్తుల కోడ్‌ని ఆదా చేస్తుంది, మీకు పొడవైన స్క్రిప్ట్ ఉంటే ఇది ఉపయోగపడుతుంది. ఉదాహరణకు, కిందివి ఒక చిన్న స్క్రిప్ట్, ఇది కొన్ని పవర్‌షెల్ ఫర్ ఈచ్ లూప్‌లను ఉపయోగిస్తుంది. ఇది మీరు 30 రోజుల్లో తెరవని మీ అన్ని ఫైల్‌ల జిప్ ఆర్కైవ్‌ను సృష్టిస్తుంది.

ForEach లూప్‌లను ఉపయోగించి ఫైల్ ఆర్కైవ్ సిస్టమ్‌ను రూపొందించడం

దశలను విచ్ఛిన్నం చేద్దాం. మీరు వాడుతారు పొందండి-చైల్డ్ ఐటెమ్ డాక్యుమెంట్స్ ఫోల్డర్‌లో అన్ని ఫైల్‌లను పొందడానికి. పర్యావరణ వేరియబుల్ $ env: USERPROFILE ప్రస్తుత ప్రొఫైల్‌ని ఉపయోగించి స్క్రిప్ట్‌ను అమలు చేస్తుంది. ఈ వేరియబుల్ హార్డ్‌కోడ్ మార్గం కంటే ఎక్కువ పోర్టబుల్. ఆ శోధన ఫలితాలు వేరియబుల్‌కు కేటాయించబడ్డాయి $ MyDocs . మేము మా ఫోర్‌ఇచ్ లూప్‌ని ప్రతి దాని ద్వారా అడుగు పెట్టడం ద్వారా సృష్టిస్తాము $ 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 అమరిక. ఫైల్ క్రమబద్ధీకరణ పూర్తయిన తర్వాత, మేము మా పూర్తి శ్రేణిని తీసుకొని జిప్ ఫైల్‌ను సృష్టిస్తాము. ఈ ప్రక్రియ కొంచెం క్లిష్టంగా ఉంటుంది, ఎందుకంటే ఇందులో కొంచెం .NET ఉంటుంది. మీరు దానిని సరిగ్గా గ్రహించకపోతే చింతించకండి - మీరు కోడ్‌ను దొంగిలించవచ్చు ఈ టెక్ నెట్ సహాయ పత్రం .

ఇక్కడ ఏమి జరుగుతుందో విచ్ఛిన్నం చేయడానికి: మేము మా పాత ఫైల్‌లన్నింటినీ 30 రోజుల కంటే పాత నేటి తేదీ కోసం కొత్త డైరెక్టరీకి తరలిస్తాము. ఆ ఫోల్డర్ నిర్మించిన తర్వాత, మేము అదే పేరుతో జిప్ ఆర్కైవ్‌ను సృష్టించాలి. ఆర్కైవ్ విజయవంతమైందని మరియు .ZIP ఫైల్ ఉందని నిర్ధారించుకోవడానికి మేము పరీక్షిస్తాము, ఆపై కొత్త ఫోల్డర్‌ను తొలగించండి. దీన్ని నెలకు ఒకసారి అమలు చేయడానికి షెడ్యూల్ చేసిన పనిగా సెట్ చేయండి. మీరు మీ స్థలాన్ని కొద్దిగా ఆదా చేసుకొని మీ డాక్యుమెంట్స్ ఫోల్డర్‌ని శుభ్రంగా ఉంచుకుంటారు.





ఉండగా మరియు అలాగే చేయండి: పరిస్థితిపై ఉచ్చులు

ఒక నిర్దిష్ట షరతు నెరవేరినప్పుడు మాత్రమే మీరు లూప్‌ని అమలు చేయాలనుకుంటే, మీరు ఒక లూప్‌ను ఉపయోగిస్తారు. కౌంట్ అప్ ట్రాక్ చేయడానికి మీరు వేరియబుల్ ఉపయోగిస్తుంటే, ముందుగా దాన్ని సెట్ చేయండి.

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

సమస్య ఏమిటంటే, మీరు కౌంటర్ ఉపయోగించకపోతే, పరీక్ష నిజమే అయినా మీ కోడ్ కనీసం ఒక్కసారైనా అమలు కావాలనుకోవచ్చు. దిగువ ఉదాహరణ స్క్రిప్ట్ విషయంలో ఇదే జరుగుతుంది. కాబట్టి ఆ సందర్భాలలో, మీరు Do-while లూప్‌ని ఉపయోగించాలనుకుంటున్నారు. వాక్యనిర్మాణం కొద్దిగా భిన్నంగా ఉంటుంది.

do{
Your Steps
}while(Conditional Statement)

అనుభవం లేని ప్రోగ్రామర్‌కు వీటిని ఉపయోగించడం అంత స్పష్టంగా లేదు. విలక్షణమైన రోజువారీ స్క్రిప్టింగ్ చేయడం వలన, మీరు వాటిని తరచుగా ఎదుర్కొనకపోవచ్చు. ఒక ప్రక్రియ యొక్క విజయాన్ని పరీక్షించడానికి తాత్కాలిక టైమర్‌ని తయారు చేయడం అనేది వారు ప్రత్యేకంగా ఉపయోగపడే చోట.

ఐఫోన్ కోసం ఆన్‌లైన్ గేమ్స్ డౌన్‌లోడ్ లేదు

మేము రిమోట్ మెషీన్ను రీబూట్ చేయడానికి శీఘ్ర స్క్రిప్ట్‌ను రూపొందించబోతున్నాము మరియు 15 నిమిషాల్లోపు అది తిరిగి రాకపోతే హెచ్చరించాలి. ఈ దృష్టాంతంలో ఇది హోమ్ సర్వర్ లేదా ఇతర యంత్రాలు తరచుగా రీబూట్ చేయబడవు. మీ కంప్యూటర్ సాధారణంగా వేగంగా వస్తే సమయాన్ని సర్దుబాటు చేయడానికి సంకోచించకండి.

రీబూట్ చేసి చెక్ చేయండి: డూ-విల్ లూప్‌ని ఉపయోగించడం

ఈ స్క్రిప్ట్ కొంచెం సరళమైనది. మొదట, మీరు దీనిని ఉపయోగించండి పునartప్రారంభించు-కంప్యూటర్ రిమోట్ మెషీన్ను రీబూట్ చేయడానికి ఆదేశం. (రీబూట్ ఆదేశాల కోసం మేము ఇక్కడ డమ్మీ IP ని ఉపయోగించాము, దీన్ని మీ కంప్యూటర్ యొక్క DNS/IP తో తిరిగి రాయండి). అప్పుడు కౌంటర్ వేరియబుల్ సృష్టించండి, i మరియు దానిని 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/else ప్రకటన. ఇది మూడు కంటే ఎక్కువ ఉంటే, రిమోట్ మెషిన్ స్పందించడం లేదని స్క్రిప్ట్ అవుట్‌పుట్ చేస్తుంది. అది కాకపోతే, రీబూట్ విజయవంతమైందని ఇది తెలియజేస్తుంది.

ఇతర ఉచ్చులు

పవర్‌షెల్‌లో మరో రెండు రకాల ఉచ్చులు అందుబాటులో ఉన్నాయి. అవి మునుపటి రెండు లూప్‌లకు సంబంధించినవి, అవి సాధారణంగా ఉపయోగించబడవు. ఎ ఫర్ లూప్ అదే సమయంలో పనిచేస్తుంది. మూల్యాంకనంలో మీరు మీ అన్ని ప్రమాణాలను సెట్ చేసారు, ఆపై మీ cmdlets సెట్ చేయండి.

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

లూప్‌లు Do Do లూప్స్ లాగా ఉండే వరకు చేయండి, అయితే మీరు స్టేట్ స్టేట్‌మెంట్‌ను వరకు వరకు మార్చండి. ఉదాహరణ స్క్రిప్ట్‌లో, ఇది ప్రవర్తనకు సమానంగా ఉంటుంది. ఇది శైలి ఎంపిక, కానీ డు అయితే ఇతర పరిస్థితులలో మరింత బహుముఖంగా ఉంటుంది. కాబట్టి మీరు ఒకదాన్ని మాత్రమే గుర్తుంచుకుంటే, డు అయితే మరింత ఉపయోగకరంగా ఉంటుంది.

పవర్‌షెల్ ఈ లూప్‌లలో ప్రతిదానికి కూడా సహాయాన్ని కలిగి ఉంది. జోడించడం ద్వారా మీరు సహాయం పొందవచ్చు గురించి Get-Help లో లూప్ పేరు ముందు. మీరు ప్రతి రకం కోసం ఉదాహరణలు మరియు ఇతర చిట్కాలను చూడవచ్చు. మీరు ఇరుక్కుపోతే ఇవి సహాయపడతాయి.

మీతో పాటు పెరుగుతూనే ఉంది

ఈ సమయంలో, బలమైన స్క్రిప్ట్‌లను రూపొందించడం ప్రారంభించడానికి మీకు చాలా నైపుణ్యాలు ఉన్నాయి. మీ హోమ్ రిగ్‌ను ఆటోమేట్ చేసినా లేదా పనిలో సమయాన్ని ఆదా చేసినా, లూప్‌లు మీ స్క్రిప్ట్‌లను మరింత చేయడంలో సహాయపడతాయి. ఈ లూప్‌లను ఎర్రర్ హ్యాండ్లింగ్‌తో కలపడం వలన మీ స్క్రిప్టింగ్ బేసిక్స్‌కు మించి కదులుతుంది. ఇది మరింత ఆధునిక భాషలకు తలుపులు తెరుస్తుంది.

మీరు లూప్‌లను ఉపయోగించి సృష్టించిన తెలివైన పవర్‌షెల్ స్క్రిప్ట్ అంటే ఏమిటి? వ్యాఖ్యలలో మాతో పంచుకోండి.

షేర్ చేయండి షేర్ చేయండి ట్వీట్ ఇమెయిల్ డిస్క్ స్థలాన్ని ఖాళీ చేయడానికి ఈ విండోస్ ఫైల్స్ మరియు ఫోల్డర్‌లను తొలగించండి

మీ విండోస్ కంప్యూటర్‌లో డిస్క్ స్థలాన్ని క్లియర్ చేయాలా? డిస్క్ స్థలాన్ని ఖాళీ చేయడానికి సురక్షితంగా తొలగించగల విండోస్ ఫైల్‌లు మరియు ఫోల్డర్‌లు ఇక్కడ ఉన్నాయి.

తదుపరి చదవండి
సంబంధిత అంశాలు
  • ప్రోగ్రామింగ్
  • పవర్‌షెల్
  • స్క్రిప్టింగ్
రచయిత గురుంచి మైఖేల్ మెక్కన్నేల్(44 కథనాలు ప్రచురించబడ్డాయి)

వారు విచారకరంగా ఉన్నప్పుడు మైఖేల్ Mac ని ఉపయోగించలేదు, కానీ అతను యాపిల్‌స్క్రిప్ట్‌లో కోడ్ చేయవచ్చు. అతనికి కంప్యూటర్ సైన్స్ మరియు ఇంగ్లీషులో డిగ్రీలు ఉన్నాయి; అతను కొంతకాలంగా Mac, iOS మరియు వీడియో గేమ్‌ల గురించి వ్రాస్తున్నాడు; మరియు అతను ఒక దశాబ్దానికి పైగా పగటిపూట IT కోతి, స్క్రిప్టింగ్ మరియు వర్చువలైజేషన్‌లో ప్రత్యేకత కలిగి ఉన్నాడు.

విండోస్ 8 కోసం రికవరీ డిస్క్ ఎలా తయారు చేయాలి
మైఖేల్ మక్కన్నేల్ నుండి మరిన్ని

మా వార్తాలేఖకు సభ్యత్వాన్ని పొందండి

టెక్ చిట్కాలు, సమీక్షలు, ఉచిత ఈబుక్‌లు మరియు ప్రత్యేకమైన డీల్స్ కోసం మా వార్తాలేఖలో చేరండి!

సభ్యత్వం పొందడానికి ఇక్కడ క్లిక్ చేయండి