स्क्रिप्ट में न्यू-एलियास विफल रहता है, ठीक-ठीक इंटरएक्टिवली


2

मैं पिछले कुछ वर्षों से इस सरल छोटी स्क्रिप्ट का उपयोग कर रहा हूं:

#! PowerShell
# Create utility aliases for working with fax account management cmdlets
# account searches
new-alias -name gfad                        -value '.\Get-FaxAcctByDNIS.ps1'            
new-alias -name gfap                        -value '.\Get-FaxAcctByPhone.ps1'           
new-alias -name gfasql                      -value '.\Get-FaxAcctBySQL.ps1'             
new-alias -name gfasso                      -value '.\Get-FaxAcctBySSO.ps1'             
new-alias -name Get-AcctByDNIS              -value '.\Get-FaxAcctByDNIS.ps1'            
new-alias -name Get-AcctByPhone             -value '.\Get-FaxAcctByPhone.ps1'           
new-alias -name Get-AcctBySQL               -value '.\Get-FaxAcctBySQL.ps1'             
new-alias -name Get-AcctBySSO               -value '.\Get-FaxAcctBySSO.ps1'             
# route searches
new-alias -name gfra                        -value '.\Get-FaxRouteByDestination.ps1'    
new-alias -name gfrd                        -value '.\Get-FaxRouteByDNIS.ps1'           
new-alias -name gfrsql                      -value '.\Get-FaxRouteBySQL.ps1'            
new-alias -name Get-RouteBySQL              -value '.\Get-FaxRouteBySQL.ps1'            
new-alias -name Get-RouteByDestination      -value '.\Get-FaxRouteByDestination.ps1'    
new-alias -name Get-RouteByDNIS             -value '.\Get-FaxRouteByDNIS.ps1'           
new-alias -name Get-RouteBy                 -value '.\Get-FaxRouteBy.ps1'               
new-alias -name Get-RouteBySQL              -value '.\Get-FaxRouteBy.ps1'               
# user searches
new-alias -name gfun                        -value '.\Get-UserByName.ps1'               
new-alias -name gfusso                      -value '.\Get-UserBySSO.ps1'                
new-alias -name gfusql                      -value '.\Get-UserBySQL.ps1'                
new-alias -name Get-FaxUserByName           -value '.\Get-UserByName.ps1'               
new-alias -name Get-FaxUserBySSO            -value '.\Get-UserBySSO.ps1'                
new-alias -name Get-FaxUserBySQL            -value '.\Get-UserBySQL.ps1'                
# miscellaneous
#EoF#

उसके साथ बहुत गलत होने की कल्पना करना मुश्किल है (जब तक आप इसे दो बार नहीं चलाते हैं और "पहले से परिभाषित" त्रुटियां प्राप्त करते हैं), सही? और इसने हमेशा वैसा ही काम किया है जैसा इसे करना चाहिए।

आज सुबह अचानक मैंने इसे फिर से प्रयोग किया और एलियास में से एक का उपयोग करने की कोशिश की और मुझे यह मिल गया:

12:07:19|32|~\docs\rts\geafax# .\xyzzy.ps1 new-alias : The alias is not allowed, because an alias with the name 'Get-RouteBySQL' already exists. At C:\Users\200018252\docs\rts\geafax\xyzzy.ps1:23 char:1
+ new-alias -name Get-RouteBySQL              -value '.\Get-FaxRouteBy. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceExists: (Get-RouteBySQL:String) [New-Alias], SessionStateException
    + FullyQualifiedErrorId : AliasAlreadyExists,Microsoft.PowerShell.Commands.NewAliasCommand​​​

लेकिन ... उपनाम पहले से परिभाषित नहीं है:

12:07:29|33|~\docs\rts\geafax# gal get-routebysql
gal : This command cannot find a matching alias because an alias with the name 'get-routebysql' does not exist.
At line:1 char:1
+ gal get-routebysql
+ ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (get-routebysql:String) [Get-Alias], ItemNotFoundException
    + FullyQualifiedErrorId : ItemNotFoundException,Microsoft.PowerShell.Commands.GetAliasCommand
12:07:56|34|~\docs\rts\geafax# gci alias:\get-routebysql
gci : Cannot find path 'get-routebysql' because it does not exist.
At line:1 char:1
+ gci alias:\get-routebysql
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (get-routebysql:String) [Get-ChildItem], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

और न ही स्क्रिप्ट में परिभाषित किसी अन्य उपनाम का निर्माण किया गया है। जो यह अजीब बनाता है कि यह तब तक एक त्रुटि नहीं करता जब तक कि यह शिकायत करने से पहले Get-RouteBySQL के लिए नीचे नहीं जाता!

इसे और अधिक रहस्यमय बनाने के लिए, मैं स्क्रिप्ट से सीएलआई प्रॉम्प्ट से सीधे सभी लाइनों को निष्पादित कर सकता हूं और वे सभी सफल होते हैं!

मैंने स्क्रिप्ट या मेरे पॉवर्सशेल वातावरण में कोई परिवर्तन नहीं किया है।

मैं पूरी तरह से स्टम्प्ड हूं। किसी के पास कोई विचार है?


आप एक जोड़ सकते हैं -Force आपके New-Alias कमांड, जो उन्हें ओवर-राइट करेगा, अगर स्क्रिप्ट को लगता है कि वे मौजूद हैं।
Zoredache

वे निश्चित रूप से उत्पादन में नहीं हैं gal?
root

धन्यवाद, Zoredache। मैंने -force के बारे में सोचा था, लेकिन वास्तव में समझना चाहूंगा कि क्या और क्यों चल रहा है।
ArleyD

वे निश्चित रूप से गेट-एलियास (गैल) से आउटपुट में नहीं हैं
ArleyD

क्युरिओसर & amp; जिज्ञासु ... जोड़ा -फोर्स, प्रति Zoredache। अब यह कोई त्रुटि नहीं फेंकता है, लेकिन फिर भी उपनाम नहीं बनाता है!
ArleyD
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.