सालों से, मैंने cmd/DOS/Windows
बैच फ़ाइलों के लिए शेल और कमांड लाइन तर्क का उपयोग किया है। उदाहरण के लिए, मैं एक फ़ाइल है, zuzu.bat
और उस में, मैं पहुँच %1
, %2
आदि अब, मैं जब मैं एक फोन भी ऐसा ही करना चाहते हैं PowerShell
स्क्रिप्ट when I am in a Cmd.exe shell
। मेरे पास एक स्क्रिप्ट है, xuxu.ps1
(और मैंने पीएस 1 को अपने पथ चर और पॉवरशेल के साथ संबंधित पीएस 1 फाइलों को जोड़ दिया है)। लेकिन कोई फर्क नहीं पड़ता कि मैं क्या करूं, मुझे $args
चर से कुछ भी प्राप्त करने में असमर्थ लगता है । इसकी लंबाई हमेशा 0 होती है।
अगर मैं PowerShell
इसके बजाय एक शेल में हूं cmd.exe
, तो यह काम करता है (बेशक)। लेकिन मैं अभी तक पूरी तरह से सहज नहीं हूं ताकि पावरशेल के माहौल में रहूं। मैं टाइप नहीं करना चाहता powershell.exe -command xuxu.ps1 p1 p2 p3 p4
। मैं टाइप करना चाहता हूं xuxu p1 p2 p3 p4
।
क्या यह संभव है और यदि ऐसा हो तो कैसे?
नमूना जो मुझे काम नहीं मिल सकता है वह तुच्छ है, foo.ps1:
Write-Host "Num Args:" $args.Length;
foreach ($arg in $args) {
Write-Host "Arg: $arg";
}
परिणाम हमेशा इस तरह होते हैं:
C:\temp> foo
Num Args: 0
C:\temp> foo a b c d
Num Args: 0
c:\temp>
xuxu p1 p2 p3 p4
")।