পাওয়ারশেলের এম্পারস্যান্ড এবং ডাবল-অ্যাম্পারস্যান্ডের প্রতিস্থাপন


28

উইন্ডোজের নেটিভ সিএমডি প্রসেসরে, আপনি &কমান্ডগুলি স্ট্রিংয়ের জন্য একসাথে ব্যবহার করতে পারেন যাতে একের পর এক তাত্ক্ষণিক চলমান। একটি &&ত্রুটি ছাড়া শুধুমাত্র প্রথম সম্পন্ন হয়ে যদি দ্বিতীয় কমান্ড চালানো হবে।

এটি পাইপিং কমান্ডের সাথে পৃথক পৃথক পৃথক কমান্ড |থেকে প্রথম কমান্ড থেকে আউটপুট না পাঠানো হয়, কমান্ডগুলি কেবল একের পর এক চালানো হয় এবং প্রতিটিটির জন্য আউটপুটটিকে তার যথাস্থানে প্রেরণ করা হয়।

যাইহোক, আমি যখন ব্যবহার করার &বা &&পাওয়ারশেলে চেষ্টা করি তখন আমি একটি ত্রুটি পাই । পাওয়ারশেলের মধ্যে কি একই জাতীয় ফাংশন উপলব্ধ রয়েছে, না এই বৈশিষ্ট্যটি হ্রাস করা হচ্ছে?



একটি আকর্ষণীয় প্রশ্ন হ'ল পাওয়ারশেলের রূপক প্রোগ্রামগুলি যদি এই কার্যকারিতাটি সরবরাহ করতে ব্যবহার করা যেতে পারে&&
soandos

উত্তর:


35

&পাওয়ারশেলের অপারেটরটি কেবল ;বা সেমিকোলন on

&&PowerShell মধ্যে অপারেটর একটি হিসাবে চালানো হবে ifবিবৃতি।

Command ; if($?) {Command}


1

এই ফাংশনটি ব্যবহার করে দেখুন, যা প্রায় একইভাবে ব্যবহার করা যেতে পারে:

function aa() {
    if($?) {
        $command = [string]::join(' ', $args[1..99])
        & $args[0] $command
    }
}

এখন এর &&সাথে প্রতিস্থাপন করা যেতে পারে ; aa, যা এখনও নিখুঁত না হলেও অনেক বেশি সংযোগযুক্ত।

cls && build

হয়ে

cls; aa build

1
কোনও স্টাইলিস্টিক কারণ আপনি কেন ব্যবহার করছেন args[0]এবং করছেন না function aa ($cmd)?
ruffin

কমান্ড আহ্বান করার এটি একটি ভঙ্গুর উপায়; চারপাশে কমান্ডগুলি পাস করার জন্য স্ক্রিপ্ট ব্লকগুলি ব্যবহার করুন এবং তাদের সাথে অনুরোধ করুন ., না &কারণ পরেরটি ভেরিয়েবলের জন্য একটি শিশু সুযোগ তৈরি করে।
mklement0
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.