আমি কীভাবে পাওয়ারশেলের কোনও শর্তকে উপেক্ষা করব?


272

আমি কীভাবে পাওয়ারশেলের শর্তসাপেক্ষ পরীক্ষাকে প্রত্যাখ্যান করব?

উদাহরণস্বরূপ, আমি যদি ডিরেক্টরি সি: \ কোডটি পরীক্ষা করতে চাই তবে আমি চালাতে পারি:

if (Test-Path C:\Code){
  write "it exists!"
}

সেই শর্তটিকে উপেক্ষা করার কোনও উপায় আছে, যেমন (অ-কর্মহীন):

if (Not (Test-Path C:\Code)){
  write "it doesn't exist!"
}

কার্যকারিতা :

if (Test-Path C:\Code){
}
else {
  write "it doesn't exist"
}

এটি দুর্দান্ত কাজ করে তবে আমি কিছুটা ইনলাইন পছন্দ করি।

উত্তর:


508

আপনি প্রায় এটি সঙ্গে ছিল Not। এটা করা উচিত:

if (-Not (Test-Path C:\Code)) {
    write "it doesn't exist!"
} 

আপনি এটি ব্যবহার করতে পারেন !:if (!(Test-Path C:\Code)){}

কেবল মজাদার জন্য, আপনি বিটওয়াইজ এক্সক্লুসিভ বা এমনকি ব্যবহারযোগ্য / বোধগম্য পদ্ধতি না হলেও এটি ব্যবহার করতে পারেন।

if ((test-path C:\code) -bxor 1) {write "it doesn't exist!"}

2
আকর্ষণীয়, তাই কি পরে -nottheতিহ্যগত বিকল্প সঙ্গে আসে !? আমি একরকম জন্য ঐতিহ্যগত বিকল্প পেতে পারি -eqএবং -neবাড়ছে কি?
রোমান স্টারকভ

8
না, -notএকমাত্র লজিকাল অপারেটর যা বিকল্প (দেখুন help about_Logical_Operators) এর সাথে আসে এবং অপারেটরদের বিকল্প দেওয়া যায় না।
রিন্যান্ট

14
ধন্যবাদ, আমি !প্রয়োজনীয় বন্ধনী ব্যবহারের সত্যটি অনুপস্থিত ।
হলিস্টিক বিকাশকারী

@ হলিস্টিক-বিকাশকারী !নিজেই প্রথম বন্ধনী প্রয়োজন হয় না। কমপক্ষে পিএস 3 তে নেই।
Llyle

9
'! টেস্ট-পাথ' শব্দটি একটি সেমিডলেট এর নাম হিসাবে স্বীকৃত নয় ... :)
সোডাওলো

9

আপনি যদি আমার মতো হন এবং দ্বৈত বন্ধনী অপছন্দ করেন তবে আপনি কোনও ফাংশন ব্যবহার করতে পারেন

function not ($cm, $pm) {
  if (& $cm $pm) {0} else {1}
}

if (not Test-Path C:\Code) {'it does not exist!'}

উদাহরণ


1
আমি এটি পছন্দ করি তবে সম্ভবত এই notপ্রয়োগটি সর্বত্র ব্যবহার করতে পারবেন না (উদাহরণস্বরূপ এটি কার্যকর not Test-Path -path C:\Codeহবে না)। এই সম্পর্কিত পোস্ট দেখুন
ওড়াদ

2
ভ্যালকান অর্থে পার্লের আরও যুক্তিযুক্ত, আইডিয়ম, আনলেস নামে পরিচিত, যা একটি ফাংশন হিসাবে লেখা হয়। অর্ধেক ভ্যালকান হওয়ায় আমি এটি পছন্দ করি এবং এটি সি #, উভয় ক্ষেত্রে একটি কার্য হিসাবে এবং সি এবং সি ++ এ ম্যাক্রো হিসাবে প্রয়োগ করেছি।
ডেভিড এ গ্রে

1
@ ডেভিডএ.গ্রি রুবির unlessকীওয়ার্ড রয়েছে (ঠিক তেমন if) তবে অন্যান্য ভাষার বেশিরভাগ ব্যবহারকারী এটি ঘৃণা করেন।
ফ্রাঙ্কলিন ইউ

3

পাওয়ারশেল সি / সি ++ / সি * অপারেটরকেও গ্রহণ করে না

যদি (! (পরীক্ষার পথ সি: \ কোড)) {লিখুন "এটির অস্তিত্ব নেই!" }

আমি প্রায়শই এটি ব্যবহার করি কারণ আমি সি * এর
অভ্যস্ত ... কোড সংক্ষেপণ / সরলকরণের অনুমতি দেয় ...
আমি এটি আরও মার্জিত মনে করি ...


0

আপনি যদি ডাবল বন্ধনী পছন্দ করেন না বা কোনও ফাংশন লিখতে চান না, আপনি কেবল একটি ভেরিয়েবল ব্যবহার করতে পারেন।

$path = Test-Path C:\Code
if (!$path) {
    write "it doesn't exist!"
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.