এমএস উইন্ডোজ সনাক্ত করুন


78

চ্যালেঞ্জ

এমন একটি প্রোগ্রাম তৈরি করুন যা মাইক্রোসফ্ট উইন্ডোজ চলাকালীন সত্যবাদী মান প্রদান করে (সরলতার জন্য আমরা উইন্ডোজ,, ৮.১ এবং ১০ এর সাথে থাকব) এবং অন্য কোনও অপারেটিং সিস্টেমে (ওএসএক্স, ফ্রিবিএসডি, লিনাক্স) চলাকালীন একটি মিথ্যা মান।

বিধি

  • প্ল্যাটফর্মে চালানো / সংকলন করতে ব্যর্থ কোডটি মিথ্যা মান হিসাবে গণ্য হয় না।

জয়ের মানদণ্ড

আমি এটিকে হিসাবে লেবেল করছি , তাই সর্বনিম্ন স্কোর জিততে পারে তবে আমি এই সমস্যার সৃজনশীল সমাধানগুলি দেখতে খুব আগ্রহী।


7
প্রস্থান কোড দ্বারা প্রোগ্রাম আউটপুট করতে পারেন? ( সাধারণত অনুমোদিত )
ফ্লিপট্যাক

13
কোন অপারেটিং সিস্টেমের কাজ করা দরকার তার একটি নির্দিষ্ট তালিকা আপনি দিতে পারেন?
ফ্লিপট্যাক

2
উইন্ডোজ আরটি-এর ফলাফল কী হওয়া উচিত?
অ্যাডম

6
আপনি কয়েকটি নির্দিষ্ট নন-উইন্ডোজ সিস্টেম উল্লেখ করতে চাইতে পারেন যা অবশ্যই সমর্থিত হবে। ডস এবং ওএস 2 এর মতো জিনিস সম্পর্কে মন্তব্যে কিছু বিতর্ক রয়েছে।
jpmc26

2
প্রস্থান কোডগুলির জন্য সত্য এবং মিথ্যা হিসাবে গণ্য হওয়া সম্পর্কে আমাদের সম্ভবত একটি sensক্যমত্য প্রয়োজন; সাধারন কনভেনশনটি সত্যের জন্য 0 এবং অন্যথায় মিথ্যা, তবে অনেক উত্তর একে বিপরীত হিসাবে বিবেচনা করে এবং "যদি বিবৃতি" সংজ্ঞা স্পষ্টতই প্রযোজ্য না।

উত্তর:


75

ভিম, 2 বাইট

<C-a>1

উইন্ডোজে <C-a>(সিটিআরএল + এ) ডিফল্টরূপে ম্যাপ করা হয় Select All। আপনি যদি 1উইন্ডোজে সিলেক্ট মোডে টাইপ করেন তবে এটি বাফারে আপনাকে 1 (1) টাইপ করে যা নির্বাচন করে তা পরিবর্তিত করে ces

অন্যান্য অপারেটিং সিস্টেমে <C-a>ডিফল্টরূপে ম্যাপ করা হয় Increment number। যেহেতু বর্ধনের কোনও সংখ্যা নেই, এটি কোনও অপশন নেই, এবং তারপরে 1 গণনা বাড়িয়ে দেয় তবে বাফারের বিবেচনায় এটি কোনও অপশন নেই।

ভিমের মধ্যে 1 সত্য, এবং একটি খালি স্ট্রিং মিথ্যা


3 টি কীস্ট্রোকের মতো দেখাচ্ছে। Ctrl + a + 1
পাভেল

12
আমি মনে করি এই মেটা পোস্টে মেটা কোডে কোডগলফ.স্ট্যাকেক্সেঞ্জার / সেকশনস / ৮৯৯৫/২ ভিএম উত্তরগুলি সাধারণত সংশোধনকারী ছাড়াই স্কোর করা হয় (বিশেষত প্রদত্ত যে পোস্টের প্রথম উত্তরটি <সিআরটিএল + এ> 1 বাইটের উদাহরণ হিসাবে ব্যবহার করে)
nmjcman101

4
@Pavel এটা Ctrl + a, 1। যদি এটি হয় তবে Ctrl + a + 1এটি 1 কীস্ট্রোক হিসাবে গণ্য হত।
ক্যাপ্টেন ম্যান

7
সুন্দর, আমি এই উত্তরটি ভালবাসি!
DJMcMayhem

এটি বরং মার্জিত, আমি এটি পছন্দ করি।
ড্যান

108

ম্যাটল্যাব, 4 বাইট

ispc

ডকুমেন্টেশন থেকে :

tf = ispcল্যাটিক্যাল 1 (সত্য) প্রদান করে যদি ম্যাটল্যাব সফ্টওয়্যারটির সংস্করণটি মাইক্রোসফ্ট উইন্ডোজ ® প্ল্যাটফর্মের জন্য থাকে। অন্যথায়, এটি যৌক্তিক 0 (মিথ্যা) প্রদান করে।

এছাড়াও ফাংশন ismacএবং isunixএই ফাংশনগুলি কী করে তা বের করার জন্য আমি এটি পাঠকের কাছে রেখে দেব। মেগো দয়া করে ব্যাখ্যা করার জন্য ডায়াগ্রামের জন্য অনুরোধ করেছিলেন ismacএবং isunixতাই আমি এখানে এটি চিত্রিত করার চেষ্টা করেছি:

এখানে চিত্র বর্ণনা লিখুন

এটা তোলে একটি ডায়াগ্রাম চাইলেন হয়নি ispcকিন্তু আমি প্রকাশ করতে পারে আচরণ, চমত্কার অনুরূপ বিকল্প ব্যতীত OSXএবং Unixসঙ্গে Windows


দ্বিতীয় পদ্ধতির:

getenv২৩ বাইট ব্যবহারের সাথে এখানে দ্বিতীয় পদ্ধতি রয়েছে যা বুলেট প্রুফ হওয়া উচিত, যদি না অন্য অপারেটিং সিস্টেমটি শুরু হয় W:

x=getenv('OS');x(1)==87

getenv 'name'ফর্মটির পাঠ্যের জন্য অন্তর্নিহিত অপারেটিং সিস্টেম পরিবেশ তালিকা অনুসন্ধান করে name=value, যেখানে nameইনপুট অক্ষর ভেক্টর। যদি পাওয়া যায়, ম্যাটল্যাব অক্ষর ভেক্টরের মান প্রদান করে। যদি নির্দিষ্ট নামটি পাওয়া যায় না, একটি খালি ম্যাট্রিক্স ফিরে আসে।


4
মন্তব্যগুলি বর্ধিত আলোচনার জন্য নয়; এই কথোপকথন চ্যাটে সরানো হয়েছে ।
ডেনিস

54

পাইথন 2.7.10 , 24 বাইট

import os
0/('['>os.sep)

3 বাইটের জন্য ফ্লিপট্যাককে ধন্যবাদ

এই প্রোগ্রামটি এই সুযোগটি গ্রহণ করে যে \পাথ বিভাজক হিসাবে উইন্ডোজই কেবলমাত্র ওএস use সাধারণত এটি হতাশ এবং খারাপ, তবে একবারের জন্য এটি আসলে একটি সুবিধা। উইন্ডোজে, '['>os.sepএটি মিথ্যা, এবং এইভাবে 0/0গণনা করা হয়, যার ফলে ZeroDivisionErrorশূন্য-বহির্গমন কোডটি বের হয়। উইন্ডোজবিহীন প্ল্যাটফর্মগুলিতে, '['>os.sepসত্যটি প্রকাশ 0/1করে যা কিছু করে না এবং প্রোগ্রামটি প্রস্থান কোড 0 দিয়ে বেরিয়ে আসে।


ডস পাথ বিভাজক হিসাবে একটি ব্যাকস্ল্যাশও ব্যবহার করে এবং এতে কমপক্ষে একটি পাইথন 2 বাস্তবায়ন রয়েছে।
ইসানায়ে

5
@ আইসানা আমি পাইথন ২.7 নির্দিষ্ট করার জন্য শিরোনাম সম্পাদনা করেছি - ডস-এ একমাত্র পাইথন ২ বাস্তবায়ন একটি প্রত্নতাত্ত্বিক, বগি ২.৪.২
মেগো

ওএস / ২ একটি ব্যাকস্ল্যাশও ব্যবহার করে এবং পাইথন ২.7 বাস্তবায়ন রয়েছে;)
ইসানানে

9
@ আইসানা সেখানে, আমি 2.7.10 উল্লেখ করেছি specified ভাগ্য ভাল যে একটি বন্দর খুঁজে।
মেগো

2
স্পষ্টতই এটি কেবলমাত্র 3 সাম্প্রতিক উইন্ডোজ সংস্করণগুলিতে সঠিক ফলাফল প্রদান করা উচিত এবং সম্ভবত একইভাবে তালিকাভুক্ত তিনটি সিস্টেমের সাম্প্রতিক ভার্সিয়াস, ওএস 2 এবং ডস কোনও বিষয় নয়,
জেসেন

45

x86 বিধানসভা, 7 বাইট ( রুনেমোর উত্তর দ্বারা অনুপ্রাণিত )

31 DB 89 D8 40 CD 80

অথবা

xor ebx, ebx 
mov eax, ebx
inc eax
int 0x80

বিবরণ

প্রথম সব, আমরা সেট করব eaxকরার 1(জন্য সিস্টেম কল সংখ্যা exit(int val)জন্য Linux, FreeBSDএবং OSX)। তারপরে, আমরা বাধাপ্রাপ্ত গেটটি কল করব 0x80যা সিস্টেম কল গেট Linux, FreeBSDএবং এর জন্য OSX। এর ফলে প্রোগ্রামটি ebxযার স্থিতিটি 0( false) with

উইন্ডোজে int 0x80একটি অবৈধ গেট (এটি 2eসিস্কেল গেট হিসাবে ব্যবহার করে ) এবং প্রোগ্রামটি ক্র্যাশ করবে, যার ফলে এটি ইতিবাচক প্রস্থান কোড ( true) দিয়ে শেষ হবে ।

সম্পাদনা:OSX 32 বিট (স্ট্যাকের সাহায্যে) এর একটি ভিন্ন যুক্তি-পাসিং কনভেনশন থাকার কারণে এটি কাজ করবে না ।

তথ্যসূত্র এবং আরও পড়া

  • FreeBSD - System Calls: সিস্টেম কল সম্পর্কে তথ্য FreeBSD
  • System calls in the Linux kernel. Part 2.: লিনাক্সের সিস্টেম কল সম্পর্কে একটি দুর্দান্ত নিবন্ধ।
  • Linux Syscall Reference: এর জন্য একটি সিস্টেম কল নম্বর রেফারেন্স Linux
  • Windows Syscall Shellcode: সরাসরি কলিং সিস্টেম সম্পর্কিত একটি নিবন্ধ windowsসমাবেশ থেকে আহ্বান জানায় ।
  • Making system calls from Assembly in Mac OS X: সিস্টেম সম্পর্কে একটি নিবন্ধ আহ্বান OSX

3
উজ্জ্বল!
z0rberg এর

কেন ক্রাশের ঘটনাগুলি সত্যের মূল্য দেয়? EAX (সাধারণত ফেরতের মান) 1 হয় বলে এটি কি? এছাড়াও, প্রোগ্রাম শুরুর সময় EAX এর 0 গ্যারান্টিযুক্ত? বা আপনার xor eax, eaxসেখানে দরকার ?
কোল জনসন

3
@ কোলজোনসন: ওএস-সনাক্ত করা ক্র্যাশগুলি (সাধারণভাবে x86 এর সাথে ব্যবহৃত অপারেটিং সিস্টেমগুলিতে) কখনই 0 এর প্রস্থান কোড ছাড়বেন না, কারণ এটি সফল সমাপ্তির জন্য সংরক্ষিত। (সাধারণত এই প্রস্থানের জন্য ওএস নির্দিষ্ট করে রাখার জন্য প্রস্থান কোডটি বেশ কৌতুকপূর্ণ মান)) তবে আমি নিশ্চিত নই যে প্রোগ্রামটি প্রস্থান কোডগুলিতে 0 টি ভুয়া এবং 1 টি সত্য হিসাবে গণ্য করা বোধগম্য, কারণ সাধারণ কনভেনশনটি হ'ল একেবারে বিপরীত (0 কেবল সত্যবাদী ভৌই হিসাবে, উদাহরণস্বরূপ স্ট্যান্ডার্ড ইউনিক্স / লিনাক্স / পসিক্স প্রোগ্রামটি falseকোড 1 সহ কোড 1 trueসহ প্রস্থান করে)।

1
এই উত্তরটি স্পষ্টতই ধরে নিয়েছে যে রেজিস্ট্রেশন করে eaxএবং ebxপ্রোগ্রাম শুরুর পরে শূন্য-সাফ হয়ে যায় (নন-উইন্ডোজে), যা সঠিকভাবে মনে পড়লে গ্যারান্টিযুক্ত হয় না । এটি স্পষ্টতই ধরে নিয়েছে যে লিনাক্সের জন্য সিস্কাল যুক্তি-পাসিং কনভেনশনটি ফ্রিবিএসডি এবং ওএসএক্সের সাথে মিলছে, যা সত্যিই খুব অবাক করা হবে।
zwol

1
@ সেবাস্তিয়ান-লরেনেইইউপ্লিসিয়ুক ভাল প্রশ্ন। mov eax, 1অনুবাদ করা হবে \xB8\x01\x00\x00\x00, যা কেবল দীর্ঘ চলমান রেজিস্টার এবং কল করার চেয়ে অনেক বেশি দীর্ঘ inc
শমুয়েল এইচ।

29

সি, 44 43 38 36 বাইট

বাইটের জন্য @ ডাউনগোটকে ধন্যবাদ! ক্রস আউট 44 এখনও নিয়মিত 44
দুটি বাইটের জন্য @ নীলকে ধন্যবাদ!

f(){return
#ifdef WIN32
!
#endif
0;}

মূলত আমি আপনাকে পরামর্শ দিতে যাচ্ছিলাম যে আপনি 0বাইরে থেকে সরে ifdefগিয়ে 1টু পরিবর্তন করে একগুচ্ছ বাইট সংরক্ষণ করতে পারেন !, তবে আমার ধারণা _WIN32+0এখনও আরও ভাল কাজ করে।
নীল

C99 ঠিক থাকলে আপনি প্রধান পরিবর্তন করতে পারেন এবং return 1;ifdef এর ভিতরে থাকা এবং অন্যটি মুছে ফেলতে পারেন, যেহেতু c99 এ মূল ছাড়াই অবশ্যই ফিরে আসতে হবে ০.
সাইমন

11
এটি একটি সংকলক নির্দেশিকা। যদি এটি একটি উইন্ডোজ সিস্টেমে সংকলিত হয় এবং লিনাক্স সিস্টেমে চালিত হয়, উদাহরণস্বরূপ, এটি এখনও ফিরে আসবে 1.
মাইকেল জনসন

4
নিবন্ধন করুন আমি এটি লিনাক্সে (মিংডও 32 জিসিএসভিসি ব্যবহার করে) এসএনডি কোড পেতে পারি যা উইন্ডোতে চালিত হওয়ার পরে সত্য ফিরে আসে। আমি কোনও উইন্ডোজ-হোস্টেড লিনাক্স সংকলক জানি না। যদি আপনি "ওয়াইন" এর মতো এমুলেশন স্তরগুলি যুক্ত করতে চান তবে অন্য সমস্ত উত্তর সম্ভবত একই সমস্যার
জেসেন

1
WIN32 সবেমাত্র সংজ্ঞায়িত হয়েছে কিনা তা নিশ্চিত নন, তবে এটি শূন্য-না-তে সংজ্ঞায়িত হয়েছে। যদি এটি পরবর্তী ক্ষেত্রে হয় তবে আপনি কেবল বলতে পারেন #if WIN32। উইন্ডোজবিহীন, যেহেতু ডাব্লুআইএন 32 সংজ্ঞায়িত করা হয়নি, প্রিপ্রসেসরটি এটি 0 হিসাবে বিবেচনা করা প্রয়োজন
শাহবাজ

27

পিএইচপি, 22 বাইট

`<?=PATH_SEPARATOR>":";`  

1পাথ বিভাজকটি সেমিকোলন (ডস এবং ওএস / 2 বাদে অন্য সমস্ত ওএসের জন্য কোলন বা খালি) প্রিন্ট করে , অন্য কিছুই নয়।

এছাড়াও 22 বাইট , কিন্তু নিরাপদ নয়:

<?=strpos(__FILE__,92);

যদি ফাইল পাথটিতে ব্যাকস্ল্যাশ থাকে তবে একটি ধনাত্মক পূর্ণসংখ্যা মুদ্রণ করা হয়; অন্য কিছু না।
27 বাইট সহ একটি নিরাপদ বিকল্প : <?=DIRECTORY_SEPARATOR>"/";প্রিন্ট 1বা কিছুই না।

একটি অদ্ভুত সন্ধান : <?=__FILE__[1]==":";( 20 বাইট ) নিরাপদ নয়, তবে ঠিক আছে। তবে যদিও __FILE__আপনি স্ট্রিং (আমি চেষ্টা করেছি var_dumpএবং gettype) হিসাবে ভান করে , এটি সূচীকরণে একটি ত্রুটি ছুঁড়েছে, যদি না আপনি এটি অন্য কোথাও অনুলিপি করেন (কনটেন্টেশনও কাজ করে) বা এটি ফাংশন প্যারামিটার হিসাবে ব্যবহার না করে।

সম্পাদনা:
<?=(__FILE__)[1]==":";(এছাড়াও 22 বাইট ) পিএইচপি 7 এ কাজ করে; তবে এটি হ'ল কারণ বন্ধনীগুলি অস্থায়ী ভেরিয়েবলের ধ্রুবকের মানটি অনুলিপি করে।

27 বাইট :<?=stripos(PHP_OS,win)===0;
পরীক্ষাগুলি যদি পূর্বনির্ধারিত PHP_OSধ্রুবক দিয়ে শুরু হয় win(কেস সংবেদনশীল; উইন্ডোজ, ডাব্লুআইএন 32, উইনএনটি, তবে সাইজিওয়ুইন বা ডারউইন নয়); 1উইন্ডোজের জন্য মুদ্রণ , অন্য কিছুই।

17/18 বাইট :

<?=strlen("
")-1;

1এটি উইন্ডোজ লাইনব্রেক (ডস, ওএস / 2 এবং আতারি টিওএস এও সংরক্ষণ করা হয়েছে - যদি আমার সন্দেহ হয় যে কেউ যে কোনওদিনও টসটির জন্য পিএইচপি সংকলন করেন) তবে অন্যটি প্রিন্ট করে 0

আপনি ধ্রুবক পরীক্ষা করতে পারে PHP_EOL

আরও বিকল্প:

PHP_SHLIB_SUFFIXহয় dllWindows এ কিন্তু অগত্যা শুধুমাত্র সেখানে নেই।
php_uname()অপারেটিং সিস্টেমে আরও তথ্য দেয় এবং আরও অনেক কিছু; Windowsউইন্ডোজ জন্য শুরু হয় । উইন্ডোজের একটি ব্রাউজারে যখন কল করা
$_SERVER['HTTP_USER_AGENT']থাকে Windowsতখন তা থাকবে ।
<?=defined(PHP_WINDOWS_VERSION_BUILD);(38 বাইট) পিএইচপি> = 5.3 এ কাজ করে

উপসংহার

এটির সত্যিকারের উইন্ডোজ, এটির মতো দেখতে কিছুই নয়, এটি জানাবার একমাত্র ব্যর্থ সাফল্যটি ওএস নামের একটি চেক বলে মনে হচ্ছে। পিএইচপি php_os()জন্য: সুরক্ষার কারণে অক্ষম হতে পারে; তবে PHP_OSসম্ভবত সর্বদা পছন্দসই তথ্য থাকবে।


4
* নিক্সের ফাইলের নামগুলিতে ব্যাকস্ল্যাশ থাকতে পারে, সুতরাং এটি সত্যই বোকা নয়। বিধিগুলি বলে না যে এটি নির্বোধ হতে হবে, যদিও so \ _ (ツ) _ / ¯
জর্দান

@ জর্দান: আপনি ঠিক বলেছেন। আমি বর্ণনায় তথ্যটি যুক্ত করেছি। ধন্যবাদ।
তিতাস

4
একটি বিকল্প: <?=class_exists(COM);। ক্লাসটি কেবল COMউইন্ডোজের অধীনে উপলব্ধ, যতদূর আমি জানি। এটি আপনার একটি বাইট সংরক্ষণ করা উচিত।
ইসমাইল মিগুয়েল

@ ইসমাইল মিগুয়েল এটি পোস্ট করার জন্য এটি আপনার পক্ষে আলাদা আলাদা উত্তর। (তবে এটি করা আপনার পক্ষে উপযুক্ত হবে না; এই উত্তরটি খুব ভাল লেখা হয়েছে
is

1
@ wizzwizz4 এটি লাভের নয়। উত্তরটি বিস্মৃত হওয়ার দিকে ঠেলে দেওয়া হবে। সে কারণেই আমি নিজের উত্তর লেখার পরিবর্তে মন্তব্যটি ছেড়ে দিয়েছি।
ইসমাইল মিগুয়েল

16

বেফুঞ্জ -98, 7 বাইট

6y2%!.@

এটি অনলাইন চেষ্টা করুন!

এটি \উইন্ডোজ এবং /অন্যান্য অপারেটিং সিস্টেমে থাকা সিস্টেম পাথ বিভাজককে জিজ্ঞাসা করে কাজ করে ।

6y            System information query: #6 returns the path separator.
  2%          Test the low bit - this will be 1 for '/' and 0 for '\'.
    !         Not the value, so it becomes 0 for '/' and 1 for '\'.   
     .@       Output the result and exit.

15

গণিত, 28 বাইট

$OperatingSystem=="Windows"&

এটিকে একটি ফাংশন বানানোর কী লাভ? আপনি অ্যাম্পারস্যান্ড একটি বাইট সংরক্ষণ করে সরিয়ে ফেলতে পারবেন, এবং কোডটি সরাসরি এটি নির্ধারণ করবে যে এটি কার্যকর হয়েছে কোনও উইন্ডোজ-ইশ সিস্টেমে রয়েছে কিনা।
রুসলান

@ রুস্লান সমস্ত উত্তর অবশ্যই সম্পূর্ণ প্রোগ্রাম হতে হবে যা ফলাফল মুদ্রণযোগ্য বা কলযোগ্য ফাংশন। যদি এটি গাণিতিক নোটবুকের উত্তর হিসাবে ঘোষিত হয় তবে আপনি এটিকে একটি সম্পূর্ণ প্রোগ্রাম বলার মাধ্যমে পালিয়ে যেতে পারেন, তবে আমি যদি কমান্ড-লাইন থেকে জিনিসটি বিনা &অনুরোধে প্রকাশ করি তবে এটি কিছুই মুদ্রণ করবে না (এবং এটি তখনও কলযোগ্য ফাংশন নয়) , তবে কেবল একটি স্নিপেট / এক্সপ্রেশন)।
মার্টিন ইন্ডার

@ মার্টিনএেন্ডার আসলেই কোনও আউটপুট নেই? আমি এটি Out[1]= Falseথেকে আউটপুট পাই :~/opt/Mathematica/11.0/Executables/math <<< '$OperatingSystem=="Windows"'
রুস্লান

@ রুসলান আমি বিশ্বাস করি যে একটি নোটবুক পরিবেশ (কেবল একটি কমান্ড-লাইন ভিত্তিক একটি) শুরু করে। কমান্ড-লাইন থেকে একটি প্রোগ্রাম চালিয়ে যা বোঝাতে চাইছি তা হ'ল স্ক্রিপ্ট মোড।
মার্টিন এন্ডার

13

জাভা 8, 33 বাইট

প্রস্তাব দেওয়ার জন্য অলিভিয়ার separatorCharগ্রাগোয়ার এবং কৃতিক্সী লিথোস -1 বাইটের জন্য বিশেষ ধন্যবাদ !

এটি লাম্বদা এক্সপ্রেশন যা একটি বুলিয়ান দেয়। এটি নির্ধারিত Supplier<Boolean> f = ...;এবং এর সাথে কল করা যেতে পারে f.get()

()->java.io.File.separatorChar>90

এটি অনলাইন চেষ্টা করুন! - সার্ভারটি উইন্ডোজ নয়, তাই এটি মুদ্রণ করেfalse। তবে আমার উইন্ডোজ মেশিনে একই কোডটি প্রিন্ট করেtrue

এই কোডটি যা করে তা হ'ল সিস্টেমের ফাইল সেপারেটর পাওয়া এবং এটির কোডপয়েন্টটি অক্ষরের চেয়ে বড় কিনা তা পরীক্ষা করে দেখুন [। উইন্ডোজের ক্ষেত্রে এটি সত্য, যেমন এটি \পৃথককারী হিসাবে ব্যবহার করে - তবে প্রতিটি অন্যান্য ওএস ব্যবহার করে /, যার ASCII সারণীতে একটি কম কোড রয়েছে।


ডাব্লু দিয়ে শুরু হওয়া অন্যান্য ওএসগুলিতে এই ব্রেক হবে না?
ডাউনগোট

()->java.io.File.separatorChar=='\\'শুধুমাত্র 36 বাইট।
অলিভিয়ার গ্রাগোয়ার 15 ই

1
@ অলিভিয়ারগ্রোগোয়ার একটি দুর্দান্ত - এবং আমি এটি ব্যবহার করে 34 তে গল্ফ করতে পারি ()->java.io.File.separatorChar>'['!
ফ্লিপট্যাক

2
@ টিটাস ওয়েবস, হোনিক্স। সম্ভবত আরও বেশি।
অলিভিয়ের গ্রাগোয়ার 16

3
@ টাইটাস অপেক্ষা করুন, ওয়েটস সম্পর্কে কী ?
NoOneIs এখানে

11

জে, 7 বাইট

6=9!:12

এটি একটি ক্রিয়া (কোনও ক্রিয়াকলাপের সমান) যা বিল্টিন বিদেশী সংমিশ্রণটি 9!:12সিস্টেমের ধরণের জন্য ব্যবহার করে যেখানে 5 ইউনিক্স এবং 6 হ'ল উইন্ডোজ 32।


জে অফিসিয়াল ডকুমেন্টেশন দেখায় এটি পুরানো উইন্ডোজগুলির জন্য এই মানটি প্রদান করে। "6 উইন্ডোজ 32 (95/98/2000 / এনটি)" ডকুমেন্টেশন আপডেট করার দরকার আছে? 64৪ বিট উইন্ডোজ হলে কী হয়? jsoftware.com/help/d অভিধান
কেতা

Bit৪ বিট উইন্ডোজ on-তে পরীক্ষা করা হয়েছে এবং এটি 6.. এ ফিরে আসে। ডকুমেন্টেশনটি বেশ পুরানো বলে মনে হচ্ছে।
কেতা

@ কিিতা হ্যাঁ আমি মনে করি এটি পুরানো তবে এটি এখনও উইন্ডোজ 10 64 বিটে আমার জন্য 6 টি ফিরিয়ে দিয়েছে।
মাইল মাইল

11

আর, 15 বাইট

.Platform$O>"v"

প্ল্যানাপাসকে ধন্যবাদতালিকা উপাদান নিষ্কাশনের জন্য আংশিক ব্যবহার করার পরামর্শের জন্য ।

.প্লাটফর্ম এমন একটি প্ল্যাটফর্ম যার কিছু অধীনে আর তৈরি করা হয়েছিল তার কিছু বিশদ সহ একটি তালিকা list একটি উপাদান রয়েছে OS.type("ও" দিয়ে শুরু হওয়া নাম সহ একমাত্র উপাদান) যা চরিত্রের স্ট্রিং যা কম্পিউটারের অপারেটিং সিস্টেম (পরিবার) দেয়। একটি "unix"বা"windows"

সুতরাং "unix"তখন কম "v", তবে "windows"তত বেশি "v"। অন্যান্য বৈধ 15 বাইট উত্তর রয়েছে

.Platform$O>"V"
.Platform$O>"w"
.Platform$O>"W"

অপারেটিং সিস্টেমের ইউনিক্সের মতো উইন্ডোজ এবং ম্যাক পরিবারের জন্য আর তৈরি করা হচ্ছে । অন্যান্য ওএস পরিবার সমর্থিত নয়।


1
ইউনিক্স ব্যতীত এমন প্ল্যাটফর্মগুলি রয়েছে যা আপনি জানেন উইন্ডোজ নয় ...
ব্লু

2
@ মুদ্দিফিশ: প্ল্যাটফর্ম [[1]] আর ডকুমেন্টেশনে "ইউনিক্স" বা "উইন্ডোজ" হিসাবে সংজ্ঞায়িত হয়েছে। github.com/wch/r-source/blob/…
লাইওরি

দুঃখিত, ঠিক আছে তাহলে। এটি পুনরায় জিজ্ঞাসা করা বন্ধ করতে এই সত্যটি অন্তর্ভুক্ত করার জন্য সম্ভবত উত্তরটি সংশোধন করা উচিত
নীল

10

পার্ল, 11 বাইট

print$^O=~MS

^O আক্ষরিক নিয়ন্ত্রণ-ও দ্বারা প্রতিস্থাপন করা উচিত।

আউটপুট 1উইন্ডোতে , অন্য কোনও ওএসে কিছুই নেই।

মনে রাখবেন যে আমি sayএটি ব্যবহার করছি না কারণ এটি একটি পিছনে নতুন লাইন যুক্ত করেছে, যা পার্লে সত্য।

প্রাইমো -2 বাইট ধন্যবাদ। (এবং স্থির সম্ভাব্য সমস্যাগুলি)
-1 বাইটস আইস 523-কে ধন্যবাদ।


আফায়ার এটি সাইগউইন পার্লে কাজ করবে না।
ইগোর স্কোচিনস্কি

এটি মিংডব্লিউ পার্লেও কাজ করবে না। পার্ল তাদের উভয়কে উইন্ডোজ থেকে স্বতন্ত্র অপারেটিং সিস্টেম হিসাবে বিবেচনা করে, যদিও (তারা সাধারণত উইন্ডোজ কনভেনশনগুলির চেয়ে ইউএনআইএক্সের আনুগত্য করে), এবং তাদের প্রশ্নের উদ্দেশ্য বিবেচনা করা উচিত কিনা তা স্পষ্ট নয়। অন্যান্য খবরে আপনি এখানে একটি বাইট সংরক্ষণ করতে পারেন পরিবর্তে আক্ষরিক নিয়ন্ত্রণ- O অক্ষর ব্যবহার করে ^O

@ ais523 আমি এটি সম্পাদনা করেছি, ধন্যবাদ। সাইগউইন এবং মিংগউয়ের হিসাবে, পোস্টটি যদি তাদের উইন্ডোজ হিসাবে বিবেচনা করা উচিত তবে আমি মুছে ফেলব, তবে আপনি যেমন বলেছিলেন, তাদের আলাদা ওএসের (বা কমপক্ষে, উইন্ডোজ ওএসের মতো নয়) বিবেচনা করা আরও বুদ্ধিমান হয়ে উঠবে।
দাদা

রেজেক্স ডিলিমিটারগুলি প্রয়োজনীয় হওয়া উচিত নয় $^O=~W, যদিও আমি সম্ভবত এর সাথে মেলে MS। বিকল্পভাবে, আপনি মেলাতে পারে $^X=~':'
প্রাইমো

@ প্রিয়মো ঠিক আছে, ধন্যবাদ। আমি Wএটির সাথে অন্য কোনও ওএসকে জানি না তাই আমি Wজরিমানার জন্য যাচাইয়ের জন্য ধরে নিয়েছি .. কোনও কারণে কেন আপনি MSতার পরিবর্তে পরামর্শ দিচ্ছেন ?
দাদা

9

জুলিয়া, 10 বাইট

is_windows

একটি ফাংশন যা উইন্ডোগুলির জন্য সত্য ফিরে আসে


9

x86 মেশিন কোড, 9 বাইট

40 39 04 24 75 02 CD 80 C3

থেকে সংকলিত:

inc eax        ; set eax to 1
cmp [esp], eax ; check if [esp] == 1 (linux)
jne windows    ; jump over "int 0x80" if on windows
int 0x80       ; exit with exit code 0 (ebx)
windows:
ret            ; exit with exit code 1 (eax)

3
খাঁটি বাইনারি (সিওএম) উইন্ডোজ বা লিনাক্সে চলবে না তাই নিশ্চিত যে এটি বৈধ কিনা
ইগোর স্কোচিনস্কি

@ আইগরস্কোচিনস্কি অবশ্যই সমাবেশের জন্য একজন দোভাষী হতে হবে।
শমুয়েল এইচ।

আপনি কেবল রেখেই কোডটি আরও খাটো করে তুলতে পারেন inc eaxএবং int 0x80, আমি মনে করি এটি উইন্ডোতে ব্যর্থ হওয়া উচিত এবং প্রক্রিয়াটি শেষ করে দেওয়া উচিত।
শমুয়েল এইচ।

2
@ আইগরস্কোচিনস্কি এমন কিছু প্রোগ্রাম রয়েছে যা কাঁচা বাইনারিও চালায়। আমার আগের মন্তব্যে লিঙ্কটি দেখুন।
শমুয়েল এইচ।

1
বোচস এবং কিউইএমইউ খালি ধাতব পরিবেশের অনুকরণ করে এবং হোস্ট ওএসের অধীনে বাইনারি কোড চালায় না। সুতরাং তারা আইএমও কাজ করবে না। তবে এই সমস্তই মেটাটির জন্য আলোচনার কারণ হতে পারে।
ইগোর স্কোচিনস্কি

8

জাভাস্ক্রিপ্ট, 42 30 26 25 বাইট

console.log((
//Begin
_=>navigator.oscpu[0]>'V'
//End
)())

ফায়ারফক্সের সাথে পরীক্ষিত। (ক্রোমের oscpuসম্পত্তি নেই)) যেহেতু ছোট হাতের অক্ষরগুলির মধ্যে বড় হাতের অক্ষরের চেয়ে উচ্চ বর্ণের কোড থাকে তাই এটি ফায়ারফক্স সমর্থন করে এমন কোনও প্ল্যাটফর্মে navigator.oscpuবড় হাতের অক্ষর এবং ডাব্লু , এক্স , ওয়াই বা জেড না হওয়ার প্রথম অক্ষরের উপর নির্ভর করে (ব্যতীত অন্য) উইন্ডোজ অবশ্যই)। এই পোস্ট অনুসারে , এটি কেস।

সম্পাদনাগুলি

  1. নীলকে ধন্যবাদ 12 বাইট সংরক্ষণ করা হয়েছে ।
  2. আরও চারটি বাইট সংরক্ষণ করেছেন
  3. ব্লেন্ডারকে ধন্যবাদ আরেকটি বাইট সংরক্ষণ করুন ।

oscpuসম্ভবত navigatorআপনি ব্যবহার করতে পারেন যে সংক্ষিপ্ত সম্পত্তি। এছাড়াও, একটি রেজিএক্সপেক্টের পরীক্ষা করা সম্ভবত সংক্ষিপ্ততর কাজ করবে, তবে আমি এটি মাপা হয়নি।
নীল

আপনি 3 বাইট সংরক্ষণ করে চর্বি তীরের পরে !=-1একটি ~ডান সরিয়ে এবং যুক্ত করতে পারেন ।
লুক 16

আপনার কি কোনও ফাংশন তৈরি করতে হবে? আপনি কি শুধু console.logরেজেক্স পরীক্ষা করতে পারবেন না ? এছাড়াও navigator.oscpu[0]=='W'কাজ করবে বা অন্য কোনও ওএস রয়েছে যা ডাব্লু। এর সাথেও শুরু হয়

2
হুম, কিছু কারণে আমার ক্রোমে অস্প্পু নেই।
মুজার

2
navigator.oscpu>'V'পাশাপাশি কাজ করতে পারে
ব্লেন্ডার

8

সি #, 61 48 বাইট

()=>(int)System.Environment.OSVersion.Platform<4

13 বাইট সংরক্ষিত হয়েছে লেথলকোডারকে ধন্যবাদ

বা 83 বাইটে একটি সম্পূর্ণ প্রোগ্রাম:

class P{static int Main(){return(int)System.Environment.OSVersion.Platform<4?1:0;}}

বিভিন্ন উইন্ডোজ রূপগুলি মাইক্রোসফ্ট। নেট প্রয়োগের ক্ষেত্রে এনাম মান 0 থেকে 3 ব্যবহার করে । 4 হ'ল ইউনিক্স, 5 হ'ল এক্সবক্স [360] (যা আমি "উইন্ডোজ" বিবেচনা করব না), 6 হ'ল ম্যাকোএসএক্স। মনো একই সংস্করণগুলিতে ইউনিক্স / লিনাক্সের জন্য 128 যোগ করে একই মান ব্যবহার করে

অতএব, <4 এর যে কোনও কিছুই উইন্ডোজ নয় এবং সমস্ত কিছু উইন্ডোজ নয়।


2
আমি কিছু অনুপস্থিত কিনা তা নিশ্চিত নই, তবে আপনি কেন একটি মানটি কাস্ট করছেন int?
auhmaan

@auhmaan CS0019 Operator '<' cannot be applied to operands of type 'PlatformID' and 'int' - মূলত, সি # 'গুলি টাইপিং নিয়ম বলে আমি নাকি অনেক তুলনা করতে পারবেন না PlatformIDএবং intসরাসরি এবং সেখান থেকে কোন অন্তর্নিহিত ঢালাই এর PlatformIDজন্য int। কিন্তু হয় একটি স্পষ্ট তাদের মূল্যবোধ, যা আমি এখানে সুবিধা গ্রহণ করতে সব enums থেকে কাস্ট করুন ...
বব

1
@ মুস্তাফাএকটিএŞ এছাড়াও, আমাকে এটিও উল্লেখ করতে হবে যে এটি সি # /। নেট ফ্রেমওয়ার্ক /। নেট কোরকে লক্ষ্য করছে। এক্সবক্স ওনে কেবলমাত্র ইউডাব্লুপি অ্যাপ্লিকেশন চালানো সম্ভব যা পৃথক পৃথক এপিআই ব্যবহার করে না মোটেও System.Environment.OSVersionনয় । আপনি যদি এটি নিয়ে ইস্যুটি নিতে চলেছেন তবে আপনার অন্যান্য ইউ-ডাব্লুপি-র উত্তরও মুছে ফেলা উচিত। এটি প্রমাণিত হয় যে আপনি (বর্তমানে) উইন্ডোজবিহীন প্ল্যাটফর্মগুলিতে ইউডাব্লুপি অ্যাপ্লিকেশনগুলি চালনা করতে পারবেন না, সুতরাং আপনি সেগুলিও মুছতে পারেন। যা আপনাকে 0 টি উত্তর, এবং একটি অপ্রয়োজনীয় প্রশ্ন রেখে যায়।
বব

1
আপনি Action<bool>48 বাইটের জন্য প্রথম উদাহরণে একটি সংকলন করতে পারেন (আমি এটি পরীক্ষা করি নি তবে বিশ্বাস করি এটি কার্যকর হবে)_=>(int)System.Environment.OSVersion.Platform<4;()=>... যদিও এটি 49 বাইটের জন্য হতে পারে
TheLethalCoder

1
বেনামে ফাংশন যেমন সংকলন FuncএবংAction s এর এখানে সর্বদা ব্যবহৃত হয়। আমি বিশ্বাস করি এটি গল্ফিং টিপস পৃষ্ঠায় রয়েছে এবং আমি প্রায় সব সময় তাদের ব্যবহার করি।
বেনাম

7

ব্যাচ, 50 বাইট

@if %OS%==Windows_NT if not exist Z:\bin\sh echo 1

সম্পাদনা: এটি উইন্ডোজ দাবি করার পরিবর্তে ডসকে উপেক্ষা করার জন্য স্থির ed

শুধুমাত্র অন্যান্য উপায় আমি উইন্ডোজ বাইরে ব্যাচ চলমান জানেন ওয়াইন যা ডিফল্টভাবে ম্যাপ করবে ব্যবহার করা Z:থেকে /। অতএব যদি Z:\bin\shবিদ্যমান থাকে, সম্ভাবনাগুলি এটি হয়/bin/sh , তাই এমএস উইন্ডোজ নয়।

WINE% OS% কে কী সেট করে তা আমি জানি না, তবে এটি না হলে Windows_NTআমি 23 বাইট সংরক্ষণ করতে পারি could


1
আর একটি উপায় ডস, যা উইন্ডোজ নয়।
রুস্লান

এটি কেবল ডসের অধীনেই ব্যর্থ হয় না, এমন একটি কম্পিউটারে যেখানে জেড: ম্যাপ করা হয় এবং এমন একটি পথ রয়েছে বলেও ঘটে।
অ্যাডম

1
কমপক্ষে আমি WINE সনাক্ত করার চেষ্টা করছি । অন্য কোন উত্তর WINE এর অধীনে চলাকালীন সঠিক ফলাফল দেবে না।
নীল

3
@ অ্যাডম শিওর এবং যদি আপনি সি উত্তরটি -DWIN32 = 1 দিয়ে সংকলন করেন তবে এটিও ব্যর্থ হয়। আপনার যুক্তি?
নিল

1
হ্যাঁ, ওয়াইন সেটOS=Windows_NT
জেসেন

7

কিউ বেসিক, 31 বাইট

?INSTR(ENVIRON$("COMSPEC"),"W")

উইন্ডোজ এর অধীনে শূন্য, অন্য কিছুর আওতায় মুদ্রণ করে।

COMSPECমাইক্রোসফ্ট ওএসগুলির জন্য একটি পরিবেশগত পরিবর্তনশীল unique এটি সাধারণত কমান্ড ইন্টারপ্রেটারকে নির্দেশ করেcommand.com বাcmd.exe । উইন্ডোজ অধীনে, কমান্ড ইন্টারপ্রেটার উইন্ডোজ ডিরেক্টরিতে কোথাও বসে; এমএস-ডসের অধীনে, এটি ডস ডিরেক্টরিতে বা ডিস্কের মূলে বসে এবং অন্য কোনও ওএসের অধীনে এটি বিদ্যমান নেই।

এর COMSPECমানটিতে "ডাব্লু" রয়েছে কিনা তা পরীক্ষা করে আমরা উইন্ডোজ এবং উইন্ডোজের মধ্যে পার্থক্যটি বলতে পারি।


COMSPECলিনাক্সের অধীনে নির্দিষ্ট কিছু বোঝার জন্য সংরক্ষিত নয় (যার অর্থ এটি ডিফল্টরূপে ব্যবহারকারীর নিয়ন্ত্রণে থাকে), সুতরাং এটি সম্ভব না যে ব্যবহারকারীর এটি এমন কোনও মান সেট করা যা তারা তাদের নিজস্ব উদ্দেশ্যে ব্যবহার করছে (এবং এটি একটি ধারণ করে থাকে) W)? স্বীকারোক্তিহীন, এটি একটি কিনারা মামলা কিছুটা।

1
@ আইস ৫৩৩: এছাড়াও, উইন্ডোজ ডিরেক্টরিতে কোনও ডব্লিউ থাকতে হবে না এটি উভয় ক্ষেত্রেই ভঙ্গুর।
জোয়ি

7

নোড.জেএস, 27 16 15 13 বাইট

@ পেট্রিককে ধন্যবাদ , যিনি নোডের আরপিএল ব্যবহার করে আমার সলিউশনটি 12 বাইট শেভ করেছেন:

_=>os.EOL>`
`

আসল সমাধান:

_=>require('path').sep!='/'

আপনি যদি এটিতে পরিবর্তন করেন তবে আপনি Node.js REPLকেবল ব্যবহার করে 16 বাইট সংরক্ষণ করতে পারবেন_=>path.sep!='/'
প্যাট্রিক রবার্টস

আমি কোডগল্ফে নতুন আমাকে কি তা করতে দেওয়া হচ্ছে?
গিলজেড

হ্যাঁ, অন্যথায় আমি এটি প্রস্তাব না করতাম। REPL এর অর্থ হল পঠন, চালানো, প্রিন্ট লুপ, যে প্রোগ্রামটি আপনি nodeকনসোলে প্রবেশের পরে চলে। সেখান থেকে সমস্ত সিস্টেম নোড মডিউলগুলি তাদের প্রয়োজন ছাড়াই উপলব্ধ require()
প্যাট্রিক রবার্টস

ওহ হ্যাঁ দুঃখিত। আমার অর্থ ১১। আপনি ASCII সূচকটি 92 এবং 47 এর থেকে পরিবর্তন করে !=আপনি অন্য একটি বাইট সংরক্ষণ করতে পারেন>\ /
প্যাট্রিক রবার্টস

7

এক্সেল ভিবিএ, 41 40 30 29 26 24 বাইট

তাত্ক্ষণিক উইন্ডোজ ফাংশন যা trueযদি সিস্টেমের ওএস কোড শুরু হয় দৈর্ঘ্য 3 এর চেয়ে দীর্ঘ হয় তবে তথ্য অন্য কোনও আউটপুটটিতে সীমাবদ্ধ macবা pcdosএটি trueকেবল উইন্ডোজ পিসিতে ফিরে আসে

?[Len(Info("SYSTEM"))>3]

পূর্বের সংস্করণসমূহ

''# Ignore the second `"` that follows every `\` - its only there for highlighting 

?Left(Environ("OS"),1)="W"                 # 24 Bytes

?InStr(ThisWorkbook.Path,"\"")             # 29 Bytes

?Mid(ThisWorkbook.Path,3,1)="\""           # 30 Bytes, Restricted to local Files

?Application.PathSeparator="\""            # 30 Bytes

?Left(Application.OperatingSystem,1)="W"   # 40 Bytes

পরিবর্তনগুলি

-1 Left(...,1)ওভার ব্যবহারের জন্য নীলকে ধন্যবাদMid(...,1,1)

-10 @ মেগোর পাথ বিভাজক কৌশলটি নির্দেশ করার জন্য ক্রিসএইচকে ধন্যবাদ

-1 এর জন্য চেক করার WorkbookPathজন্য"\" ব্যবহারের চেয়েApplication.Path Separator

-4 এ স্যুইচ করার জন্য Environ()

-2 এ স্যুইচ করার জন্য [Len(Info(...

উপন্যাস সমাধান, 51 বাইট

শর্তসাপেক্ষ সংকলনের পদ্ধতিতে subউইলির 1 (truthy)নীচে এবং 0 (falsey)ম্যাকের অধীনে ভিবিই ইমিডিয়েট উইন্ডোতে আউটপুট করা উপন্যাসের রুটিন ।

Sub a
i=1
#If Mac Then
i=0
#End If
Debug.?i
End Sub

1
leftআপনাকে একটি বাইট বাঁচায়
নীল

আপনি অনলাইনে Office365 এ এটি ব্যবহার করে দেখেছেন? এমনকি এটি ভিবিএ সমর্থন করে? উৎসুক.
ক্রিস এইচ

@ ক্রিশ্হ আমার জ্ঞানের কাছে অফিস.কম অনলাইন ভিবিএ স্ক্রিপ্টিং সমর্থন করে না (যদিও অন্য কেউ যদি আরও ভাল জানেন তবে দয়া করে আমাকে বলুন, এটি আমার জীবনকে উল্লেখযোগ্যভাবে সহজ করে তুলবে); তবে, O365 এর সাথে আপনার ডেস্কটপে অফিস 2016 এর একটি অনুলিপি (বা যা কিছু বর্তমান রয়েছে) ডাউনলোড করার অধিকার রয়েছে এবং এটি ভিবিএ স্ক্রিপ্টিং সমর্থন করে।
টেলর স্কট

আমি এ পর্যন্ত এড়াতে পরিচালনা করেছি; আপনার মতামত দেওয়া অব্যাহত রাখতে দেখায় (আমি ব্যবহার করি এমন একমাত্র উইন্ডোজ মেশিনগুলির অফিসের ডেস্কটপ অনুলিপি আছে, ব্যক্তিগত মেশিনগুলি সমস্ত লিনাক্স)
ক্রিস এইচ

1
@ মেগোর পথ বিভাজক কৌশল ( ?Application.PathSeparator)="\"এটি সিঙ্গেল চর হিসাবে 32 হবে)
ক্রিস এইচ

6

পার্ল 6 ,  19  18 বাইট

put $*DISTRO.is-win
put ?($*CWD~~/\\/)

এটি চালিত সিস্টেমের উপর নির্ভর করে আউটপুট True␤বা উভয়ই False␤


দ্বিতীয়টি সিডাব্লুডির নন উইন্ডোজ মানগুলির উপর নির্ভর করে যে কোনও `` নেই - এর কোনও গ্যারান্টি নেই,
জেসেন

5

এপিএল (ডায়ালগ) , 21 বাইট

'W'∊∊#⎕WG'APLVersion'

এটি অনলাইন চেষ্টা করুন!

#⎕WG'APLVersion' রুট ( # ) ডাব্লু ইনডো জি এবং সম্পত্তি এপিএল সংস্করণ

 তালিকাভুক্ত (সমতল)

'W'∊ হয় ওয়াট সদস্য? (উইন্ডোজবিহীন কোনও রিটার্ন মানগুলির মূলধন ডাবলু থাকে না)



4

পিএইচপি 17 বাইট

নিম্নলিখিতগুলি উইন্ডোটি 1 এবং অন্য কিছু না হলে আউটপুট দেবে। স্ট্রিং রূপান্তর বিজ্ঞপ্তি উপেক্ষা।

<?=PHP_OS==WINNT;

লিনাক্সের জন্য অনলাইন অনলাইন পরীক্ষা করে দেখুন কারণ স্যান্ডবক্সটি পিসির জন্য লিনাক্স।


নিশ্চিত যে যথেষ্ট? জিজ্ঞাসা করা হচ্ছে এর জন্য সম্ভাব্য মান: PHP_OS
manatwork

1
'<? = PHP_OS [0] == ডাব্লু; both উভয়ই 1 বাইট খাটো এবং মানটওয়ার্ক দ্বারা যুক্ত প্রশ্নের সাথে অন্য সমস্ত উইন্ডোগুলির মান ধরে। >Vখুব কাজ করতে পারে।
ব্যবহারকারী59178

উইন্ডোজ ভিসা \ 7 সাল থেকে উইন্ডোজ সংস্করণটি উইন্ডোজ সংস্করণটি এনটি কর্তৃপক্ষ কার্নেলের কারণে ডাব্লুআইএনএনটি-র সাথে প্রতিনিধিত্ব করা হয়েছে, উইন্ডোজের সংস্করণ পিএইচপি কোন উইন্ডোজ সংস্করণটি সংকলিত হয়েছিল তার উপর মান্যাটওয়ার্ক নির্ভর করে। উইন্ডোজ এক্সপি এর আগে এবং নীচে ডাব্লুআইএন 32 এবং উইন্ডোজ সার্ভার 2003 ছিল উইন্ডোজ।
ডাঃWat

4

জাভা 8, 49 বাইট

()->System.getenv().get("OS").contains("Windows")

অন্যান্য জাভা উত্তরের চেয়ে লম্বা , তবে ভিন্ন পদ্ধতির প্রয়োজন।

এই ল্যাম্বদা একটিতে খাপ খায় Supplier<Boolean>এবং নিম্নলিখিত প্রোগ্রামটি দিয়ে পরীক্ষা করা যেতে পারে:

public class DetectMSWindows {

  public static void main(String[] args) {
    System.out.println(f(() -> System.getenv().get("OS").contains("Windows")));
  }

  private static boolean f(java.util.function.Supplier<Boolean> s) {
    return s.get();
  }

}

এটি আপনার সাথে সংযুক্ত প্রাথমিক উত্তরটির সাথে খুব মিল (সম্পাদনার আগে)।
অলিভিয়ের

শুধু কেন নয় .contains("W")?
সাইয়েস

@ কোয়েস আসলে, ভেরিয়েবল ওএস উইন্ডোজ-নির্দিষ্ট বলে মনে হয়।

4

হাস্কেল, 39 31 বাইট

import System.Info
f=os!!0=='m'

আমি "এম" এর প্রথম বর্ণের আউটপুট যাচাই করি, যা উইন্ডোজের জন্য "মিংডাব্লু" হওয়া উচিত। যতদূর আমি বলতে পারি, অন্য কোনও ওএস নেই যা এম থেকে শুরু হয় তথ্যটি https://github.com/ghc/ghc/blob/master/compiler/utils/Platform.hs থেকে আসে


1
আমার সিস্টেমে (উইন্ডোজ 10 64-বিট, জিএইচসি 8.0.1 64-বিট) osদেয় "mingw32"
মেগো

@ মেগো আপনি ঠিক বলেছেন, তার জন্য সংশোধন করেছেন
ডিলান মিউস

4

বাশ + কোর্টিলস, 5 বাইট

rm $0

এছাড়াও অন্যান্য বেশিরভাগ পসিমিক শেলগুলিতে কাজ করে। (নোট করুন যে উইন্ডোজ পোর্টগুলি রয়েছে bashএবং rmবিদ্যমান রয়েছে; যদিও তারা সাধারণত প্রচুর পসিক্স অপারেটিং সিস্টেমের সাথে সাধারণত ব্যবহৃত হয় তবে এটি সম্পূর্ণ শূন্য প্রবেশ নয়) প্রস্থান কোডের মাধ্যমে আউটপুট (0 = মিথ্যা, 1 = সত্য)। আপনি যদি কোনও ফাইলনাম (যেমন rm a) ধরে রাখার অনুমতি পেয়ে থাকেন তবে 4 বাইট হিসাবে গণ্য করা যেতে পারে । মনে রাখবেন যে এটি খুব অদ্ভুত ফাইলের নামগুলির ক্ষেত্রে ব্যর্থ হতে পারে (যা rmউদ্ধৃতি না দেওয়ার কারণে যুক্তি হিসাবে ব্যাখ্যা করবে এবং সম্ভবত আপনার যত্ন নেওয়া ফাইলগুলি মুছে ফেলবে, তাই আমি এই প্রোগ্রামটি কোনও অদ্ভুত নাম দিয়ে চালানোর বিরুদ্ধে পরামর্শ দেব) )।

দ্রষ্টব্য: পার্শ্ব প্রতিক্রিয়া হিসাবে ডিস্ক থেকে প্রোগ্রামটি মুছে ফেলে বা কমপক্ষে চেষ্টা করে। উইন্ডোতে আমরা যেদিকে চলছি সে ক্ষেত্রে ওএস চলমান ফাইলটি মুছে ফেলতে ব্যর্থ হবে (এমন একটি অপারেশন যা উইন্ডোজ ডিফল্ট বা পুরো স্টপ অনুসারে অস্বীকার করে), এবং এর ফলে rmত্রুটি ঘটবে। bashত্রুটিটি ধরা পড়ে এবং এটিকে একটি প্রস্থান কোডে রূপান্তরিত করে (সুতরাং পুরোপুরি প্রোগ্রামটি সাধারণত স্বাভাবিকভাবে শেষ হয়)। এখানকার অন্যান্য এন্ট্রিগুলির বেশিরভাগই প্রস্থান কোডগুলিতে ভুয়া জন্য 1 এবং সত্যের জন্য 1 ব্যবহার করছে, সুতরাং এটি একই রকম হয়; নোট করুন যে bashএর ifবক্তব্যটি মোটেও পূর্ণসংখ্যা গ্রহণ করে না (বরং এটি কমান্ড এবং শাখাগুলি সফলভাবে চালিত হয় কিনা তার ভিত্তিতে গ্রহণ করে এবং পাটিগণিত পরীক্ষা যেমন প্রোগ্রামের মাধ্যমে করা হয়)testযা ইচ্ছাকৃতভাবে একটি ব্যর্থ তুলনায় একটি "ক্র্যাশ" প্রতিবেদন করে), সুতরাং এটি যে প্রোগ্রামগুলিতে এক্সেট কোডের মাধ্যমে আউটপুট দেয় যেখানে 0 ifস্টেটমেন্ট টেস্টে বৈধ এবং প্রোগ্রামটি elseশাখায় প্রেরণ করে বৈধতার দিক থেকে এটি শক্তির ভিত্তিতে ।


4

8 ম , 11 বাইট

 
os 1- not .
 

trueউইন্ডোতে মুদ্রণ ,false লিনাক্স এবং ম্যাকোজে । 8 তম দ্বারা সমর্থিত অন্যান্য প্ল্যাটফর্মগুলি হ'ল অ্যান্ড্রয়েড, আইওএস এবং রাস্পবেরি পাই, তবে আমি সেগুলি পরীক্ষা করতে সক্ষম নই।

অবরুদ্ধ সংস্করণ (মন্তব্য সহ)

 
G:os  \ Return a number n indicating the operating system 
      \ 0 for Linux
      \ 1 for Windows 
      \ 2 for macOS
      \ 3 for Android 
      \ 4 for iOS 
      \ 5 for Raspberry Pi
n:1-  \ Subtract 1
G:not \ If Windows --> true, otherwise --> false
.     \ Print result
 

4

পাইথন 3 (13 বাইট)

import winreg

উইন্ডোতে থাকলে প্রস্থান কোড শূন্য (সাধারণত শাঁসের মধ্যে সত্য) এবং অন্যথায় শূন্য-বহির্গমন কোড সহ ফিরে আসে।

আপনি এটা অন্যান্য উপায় বৃত্তাকার পছন্দ করেন, সেখানে একটি 12 বাইট সমাধান: import posix


আমি মনে করি winreg.pyএকই ডিরেক্টরিতে কোনও ফাইল কল করা থাকলে এটি কাজ করবে না ।
জাকারি

1
এছাড়াও, নিয়ম অনুসারে: "যে প্ল্যাটফর্মটিতে চালানো / সংকলন করতে ব্যর্থ কোডটি মিথ্যা মান হিসাবে গণ্য হয় না।"
জাকারি 16

4

ট্রাম্পস্ক্রিপ্ট , 17 বাইট

America is great.

এটি অনলাইন চেষ্টা করুন!


এই প্রোগ্রামটি যদি উইন্ডোতে চালিত হয় তবে মুদ্রণ করবে:

The big problem this country has is being PC

এটি সত্যবাদী মান হিসাবে বিবেচিত হয়।


খালি আউটপুট এবং নিম্নলিখিত মান মিথ্যা:

Boycott all Apple products  until such time as Apple gives cellphone info to authorities regarding radical Islamic terrorist couple from Cal

খালি আউটপুটটি যে কোনও লিনাক্স সিস্টেমে ঘটবে (এই প্রোগ্রামের জন্য), দীর্ঘ অ্যাপল প্রতিক্রিয়া অবশ্যই ম্যাকের (কোনও প্রোগ্রামের জন্য) প্রদর্শিত হবে। টিআইও-তে, ব্যাকএন্ড (আমি ধরে নিচ্ছি) একটি ইউনিক্স অপারেটিং সিস্টেম, সুতরাং আপনি কেবল মিথ্যা মান পেতে পারেন; আমার কম্পিউটারে আমি পিসি বার্তা পাই।


এটি যদি একটি ত্রুটি বার্তা হিসাবে গণনা করা হয় তবে এটি 100% নিশ্চিত নয় (যা উত্তরটি অবৈধ করে দেবে), তবে আপনি যদি এটি সম্পর্কে জানতেন না তবে এটি সম্ভবত আপনার জন্য হাসির কারণ।


পৃথিবীতে কী এসেছে ...
অরণসয়

@avaragecoder আবার পাইথন গ্রেট আবার!
ম্যাজিক অক্টোপাস উর্ন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.