কেন কেবল "পাওয়ারশেল" এর পরিবর্তে "সিএমডি / সি পাওয়ারশেল" ব্যবহার করবেন?


25

আমি এই প্রশ্নে প্রদত্ত নির্দেশাবলী অনুসারে রেজিস্ট্রি ব্যবহার করে আমার প্রথম প্রসঙ্গ মেনু যুক্ত করেছি (ইয়ে আমাকে)

আমি প্রথমে এটি ব্যবহার করে এমন কমান্ড হিসাবে এটি ব্যবহার করে, অর্থাৎ "কমান্ড" কীটির মান:

Cmd /C Powershell  "imageSeqView --% \"%1\""

ImageSeqViewএটি আমার পাওয়ারশেল ফাংশনটির নাম, আমি আমার পাওয়ারশেল প্রোফাইলে এটি আমদানি করি। এটি দুর্দান্ত কাজ করে, তবে আমি ভাবছি: ফাংশনটি সম্পাদন cmdকরতে কেন খুলবেন Powershell? এটি করা সহজ হবে না

Powershell  "imageSeqView --% \"%1\""

এই কমান্ডটি ঠিকঠাকভাবে কাজ করছে বলে মনে হচ্ছে, তবে যেহেতু এটি ব্যবহার করা সাধারণভাবে মনে হচ্ছে cmdআমি ভাবছি এটি কি গোপনে কুকুরছানা বা কিছু মারছে?

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


2
লিঙ্কযুক্ত প্রশ্ন ব্যবহারের উত্তরগুলির কোনও cmd /c... cmd /kএর চেয়ে আলাদা নয় কারণ কমান্ডটি শেষ হওয়ার পরে এটি উইন্ডোটি খোলে । সম্ভবত প্রশ্নকর্তা এটি সেভাবে করেছিলেন যাতে তারা ডিবাগিং উদ্দেশ্যে আউটপুটটি দেখতে পারে।
বব

1
এটি এতটা সংশোধনকারী cmdনয় যেটির বিষয়ে আমি ভাবছি, টিআই এর মোটেও ব্যবহার , যা আমার গবেষণা থেকে সর্বব্যাপী বলে মনে হয়।

আপনি কি এমন একটি রেফারেন্স সরবরাহ করতে পারেন যা বাস্তবে cmd /c powershellবিশেষভাবে সুপারিশ করে? আবার, আপনি যেটিকে সংযুক্ত করেছেন সে এ জাতীয় কোনও সুপারিশ করে না।
বব

গৃহীত উত্তরটি এখানে: social.technet.microsoft.com/ Forums
scriptcenter

3
অনুমান হিসাবে, এটি সম্ভবত বেশিরভাগ কার্গো কাল্টিং। এখানে কয়েকটি কেস রয়েছে যেখানে এটি পছন্দসই হতে পারে (যেমন আপনি যখন পাইপিংয়ের মতো সিএমডি কনস্ট্রাক্টস ব্যবহার করতে চান) তবে আপনি যেভাবেই পাওয়ারশেলের ক্ষেত্রে একই কাজ করতে পারবেন সেগুলি আসলে প্রয়োগ হয় না। এমএসডিএন ডকুমেন্টেশনে এমন কোনও কিছুই নেই যা প্রস্তাব দেয় এটি প্রয়োজনীয়, যদিও ফাইল অ্যাসোসিয়েশনগুলির আশেপাশে থাকা ডক্সগুলি তুলনামূলক কম।
বব

উত্তর:


29

এটি করার কোনও ভাল কারণ নেই। প্রকৃতপক্ষে, কেবলমাত্র আসল প্রভাবটি হ'ল জিনিসগুলি ধীর করা।

লোকেরা মনে করতে পারে এটি করার উপযুক্ত কারণ আছে। সিএমডি ব্যবহারের নিম্নলিখিত প্রভাবগুলি রয়েছে যা কিছু ক্ষেত্রে সাধারণত ভাল হতে পারে:

  • " DIR" এর মতো অভ্যন্তরীণ আদেশগুলি সক্ষম করে
  • পরিবেশ পরিবর্তনশীল যেমন PATH ভেরিয়েবল সেট করে

যাইহোক, এক্ষেত্রে, সেগুলির কোনওটিই লাভ হয় না। আসুন এই উভয় পরিস্থিতিতে তাকান:

সুতরাং, কিছু ক্ষেত্রে, " CMD /C" ব্যবহারের সময় কার্যকর হতে পারে । উদাহরণস্বরূপ, আমি যদি বাহ্যিক কমান্ডটি ব্যবহার করি PSEXEC(সিসইন্টার্নাল থেকে ডাউনলোড করা) এবং DIRদূরবর্তী কম্পিউটারে " DIR" চালানোর চেষ্টা করি, তবে উইন্ডোজ " " কমান্ডটি চালানোর চেষ্টা করবে । উইন্ডোজ সেই কমান্ডটি চালাতে ব্যর্থ হবে যেহেতু " DIR.EXE", " DIR.BAT" বা " DIR" ফাইলটি অন্য কোনও সমর্থিত এক্সটেনশন দিয়ে শেষ হচ্ছে না। (সমর্থিত এক্সটেনশনগুলি " ECHO %PATHEXT%" চালিয়ে দেখা যায় can )

যাইহোক, এই দৃশ্যে, যদি আমি " CMD /C DIR" চালানোর চেষ্টা করি , তবে এটি কার্যকর হবে, কারণ উইন্ডোজ " CMD" নামের একটি এক্সিকিউটেবলের সন্ধান করবে এবং এটিটি খুঁজে CMDপাবে এবং তারপরে DIRএকটি অভ্যন্তরীণ কমান্ডটি সাফল্যের সাথে শেষ করবে which CMDকমান্ডের অংশ ।

এই ক্ষেত্রে, আপনি কেবল powershell" CMD /C powershell" হিসাবে সহজেই চালাতে পারবেন , যাতে আপনি অপ্রয়োজনীয় " CMD /C" থেকে কোনও উপকার পাবেন না । " CMD /C" টাইপ করার অতিরিক্ত ধাপের মধ্যে আমি যা দেখতে পাচ্ছি তার একমাত্র উপকার হ'ল একটি উদাহরণ সরবরাহ করা যা যদি কেউ কমান্ড লাইন " DIR" বা " COPY" চালানোর জন্য উদাহরণ পরিবর্তন করার চেষ্টা করে তবে তা কার্যকর হবে । আরও নমনীয় উদাহরণ থাকা কিছু লোকের পক্ষে কার্যকর হতে পারে। যখন তারা জানে যে তারা কী করছে তা সত্যই প্রয়োজন হয় না।

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

reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"

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

এর একটি সম্ভাব্য সুবিধা হ'ল আপনি যদি সিএমডি চালিত করতে চান যাতে আপনি% USERPROFILE% বা% LOGONSERVER% বা% TEMP% /% TMP% এর মতো পরিবেশের পরিবর্তনশীল উল্লেখ করতে পারেন তবে যেহেতু আপনি এটি করছেন না তাই আপনি নন " CMD /C" চালানো দরকার ।

সুতরাং, আপনার বিশেষ ক্ষেত্রে: এটি করার কোনও ভাল কারণ নেই। আপনি যে প্রভাবগুলি অর্জন করছেন তা আপনার কম্পিউটারে আরও বেশি কাজ করে, প্রক্রিয়াটি ধীর করে দেয় এবং আরও মেমোরি ব্যবহার করে (যা আপনি আধুনিক সরঞ্জামগুলিতে নগণ্য পরিমাণে করছেন)।


বব যে পরামর্শ দিয়েছিলেন তার সাথে আমি পুরোপুরি একমত। বব আপনাকে একটি সঠিক পথে নিয়ে যাচ্ছিল। যদিও আমি জিনিসগুলি পড়ছি, আমি ভেবেছিলাম আরও কিছু তথ্য দ্রুত আরও কিছুটা পরিষ্কার করতে সহায়তা করবে।
তোগাম

2
ftr - ভিন্ন অগ্রাধিকার দিয়ে একটি প্রক্রিয়া শুরু করা ভাল ব্যবহারের ক্ষেত্রে cmd /c। কিছু একটা cmd /c start /low Notepad.exe
লিভেন কের্মসেকারস

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

1
সেমিএমডি নিজেই পরিবেশ পরিবর্তনশীল সেট করে না। পরিবেশটি পিতামাতার প্রক্রিয়া থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হয়, এর মধ্যে সেন্টিমিডি যোগ করে সে সম্পর্কে কোনও পরিবর্তন হয় না। অ্যাপ পাথগুলি কেবল শেলএক্সিকিউটের জন্য ব্যবহৃত হয়, যতদূর আমি জানি, ক্রিয়েটপ্রসেসের জন্য নয়, তাই বেশিরভাগ পরিস্থিতিতে (বিশেষত শেলগুলিতে) সেগুলি প্রয়োগ হয় না (আপনি নিজে এটি চেষ্টা করতে পারেন, pbrushএটি একটি অ্যাপ পাথ mspaintএবং এতে কাজ করবে না) অনেক জায়গায়).
জোয়ি

@ জোয় সম্ভবত আরও সঠিকভাবে এটি ভেরিয়েবলগুলি প্রসারিত করে বলেছে ... তবে, এটি ভাবতে আসুন, আপনি যদি ব্যবহার করেন REG_EXPAND_SZআপনি পরিবেশের ভেরিয়েবলগুলি (একই ব্যবহার করে %syntax%) বর্ধিত করতে পারেন সেমিডিকেট না করে। ফাইল অ্যাসোসিয়েশনগুলিতে ব্যবহৃত ক্রিয়াগুলি এর মাধ্যমে আহ্বান করা হয় ShellExecuteEx, সুতরাং অ্যাপ পাথগুলি এখানে প্রয়োগ হয়।
বব

18

কারণ এতে রঙ থেকে মুক্তি পাওয়া যায়।

এটি হতে পারে যে তারা ভাবেন যে মানুষ নীল পটভূমিটিকে বিভ্রান্তিকর মনে করে।


1
উইন্ডোজ হ্যান্ডি নেই, তবে আপনি কি কনসোল বৈশিষ্ট্যে ব্যাকগ্রাউন্ড রঙ সেট করতে পারবেন না?
রুসলান

1
উত্সাহ দেওয়া, আমার প্রতিযোগিতামূলক উত্তর হওয়া সত্ত্বেও যা বোঝায় যে এর কোনও কারণ নেই। কারণ, এটি একটি বোধগম্য কারণ। ভাল করেছ. অবশ্যই, কিছু লোক ব্ল্যাক বক্সটি নীল বাক্সের চেয়ে বেশি বিভ্রান্তিকর হতে পারে। যাইহোক, এটি অগ্রাধিকারের বিষয় এবং লোকেরা বিভিন্ন পছন্দ থাকতে পারে, সুতরাং একটি ভাল এবং নির্ভুল উত্তরের জন্য +1। @ রুসল্যান্ড: হ্যাঁ, তবে কি দ্রুত প্রোগ্রাম অদৃশ্য হওয়ার আগে আপনি সেই পরিবর্তনটি পরিচালনা করতে পারবেন? (এবং, আপনি জানেন কিনা এক অধিবেশন করা পরিবর্তনগুলি অন্যান্য সেশানগুলি প্রভাবিত করবে সেটিংস সাধারণ মামলা ও ডেস্কটপ আইকন মতো নির্দিষ্ট বেশী মধ্যে পৃথক হবে না।?)
TOOGAM

আমি এটি কখনই লক্ষ্য করি না কারণ আমি কনইমুকে আমার ডিফল্ট কনসোল হিসাবে ব্যবহার করি, মানে আমি সর্বদা আমার সুন্দর কনফিগার কনসোল উইন্ডোটি পেয়ে আসি (এসকিআই আর্ট এবং কাস্টম প্রম্পট সহ জ্বলন্ত
টর্চগুলির

1

এর সাথে cmd powershell, আপনি বর্তমান শেলটি, এক্সপ্লোরারকে powershell, "imageSeqView ..."% 1 থেকে সেমিডির পার্সড মান সহ পরামিতিগুলির সাথে সেন্টিমিডে যেতে অনুরোধ করেন।

"powershell"এক্ষেত্রে , আশা করা যায় যে সেমিডিএসটি হয় সেমিডি কমান্ড, একটি এক্সি বা সেমিডির সমর্থিত স্ক্রিপ্টগুলির মধ্যে একটি, যেমন ব্যাট।

এর সাহায্যে powershell "imageSeqView ..."আপনি বর্তমান শেল, এক্সপ্লোরারকে % 1 এর পার্সড ভ্যালু সহ পাওয়ারশেলের powershellসাথে পরামিতিগুলির imageSeqView ...সাথে অনুরোধ করতে বলুন।

এই ক্ষেত্রে, imageSeqViewপাওয়ারশেলের দ্বারা " " হয় সেমিডলেট, একটি এক্সি বা পাওয়ারশেল স্ক্রিপ্ট হবে বলে আশা করা হচ্ছে।

প্রদত্ত যে " imageSeqView" একটি পাওয়ারশেল ফাংশন, 1 ম উপায় সম্পূর্ণ অপ্রয়োজনীয় এবং সামান্য কার্যকারিতা হ্রাস করে।

কমান্ড উইন্ডো বিকল্পগুলির জন্য, পাওয়ারশেলের মধ্যে -NoExit এর মতো একই বিকল্প রয়েছে, যা সেমিডিতে / K এর মতো হওয়া উচিত।

পাইপ-আস্তরণের জন্য, এনভ ভার্সগুলির সূচনা করার জন্য, পাওয়ারশেল সমানভাবে করতে পারে।

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