কয়েক বছর ধরে, আমি 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")।