बिल्कुल उसी अंदाज में नहीं, जिससे मैं वाकिफ हूं। एक विकल्प सीडी के बजाय पुशड का उपयोग करना है। फिर popd आपको वापस ले जाएगा।
आप अपनी प्रोफ़ाइल भी बदल सकते हैं ताकि जब भी कोई नया संकेत आए (मूल रूप से जब भी आप हिट दर्ज करें)। यह पीडब्ल्यूडी को मिलेगा और पिछले वाले से तुलना करेगा। यदि वे अलग हैं, तो उस मूल्य को एक स्टैक पर रखें। फिर आप अपने प्रोफाइल में एक और फंक्शन शामिल करेंगे, जिसे cdb की तरह कुछ कहा जाएगा, जो स्टैक और सीडी से अंतिम आइटम को पॉप करेगा।
यह मजाक की तरह लग रहा था इसलिए मैं एक समाधान के साथ आया । इस सभी कोड को अपनी प्रोफ़ाइल ( about_Profiles ) में डालें ।
[System.Collections.Stack]$GLOBAL:dirStack = @()
$GLOBAL:oldDir = ''
$GLOBAL:addToStack = $true
function prompt
{
Write-Host "PS $(get-location)>" -NoNewLine -foregroundcolor Magenta
$GLOBAL:nowPath = (Get-Location).Path
if(($nowPath -ne $oldDir) -AND $GLOBAL:addToStack){
$GLOBAL:dirStack.Push($oldDir)
$GLOBAL:oldDir = $nowPath
}
$GLOBAL:AddToStack = $true
return ' '
}
function BackOneDir{
$lastDir = $GLOBAL:dirStack.Pop()
$GLOBAL:addToStack = $false
cd $lastDir
}
Set-Alias bd BackOneDir
अब आप सामान्य की तरह सीडी कर सकते हैं और बीडी आपको अपने स्थान के इतिहास में स्थान पर वापस ले जाएगा।
pushdएक नई निर्देशिका में नेविगेट करने के लिए उपयोग करना चाहते थे , तो आपpopdपिछले एक पर वापस आ सकते हैं । यह बाश, पॉवरशेल और यहां तक कि विरासत विंडोज कमांड लाइन में काम करता है।