কয়েক বছর ধরে, আমি cmd/DOS/Windows
ব্যাচ ফাইলগুলিতে শেল এবং কমান্ড-লাইন আর্গুমেন্ট ব্যবহার করেছি। উদাহরণস্বরূপ, আমি একটি ফাইল আছে, zuzu.bat
এবং এটি, আমি এক্সেস %1
, %2
ইত্যাদি এখন আমি যখন আমি একটি কল একই কাজ করতে চান PowerShell
স্ক্রিপ্ট when I am in a Cmd.exe shell
। আমার একটি স্ক্রিপ্ট রয়েছে, xuxu.ps1
(এবং আমি আমার প্যাথএক্সট ভেরিয়েবল এবং পাওয়ারশেলের সাথে সম্পর্কিত পিএস 1 ফাইলগুলিতে PS1 যুক্ত করেছি)। তবে আমি যাই করি না কেন, আমি $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
")।