পাওয়ারশেলে সিএমডি কমান্ড চলছে


87

চালানোর জন্য পাওয়ারশেল কমান্ড পেয়ে আমার বেশ কিছু সমস্যা হচ্ছে। এটি যা করছে তা একটি কমান্ড চালানো যা একটি সিএমডি প্রম্পট উইন্ডোতে চালিত হবে।

আদেশটি এখানে:

"C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\i386\CmRcViewer.exe" PCNAME

আমি কোনও সাফল্য ছাড়াই নিম্নলিখিতগুলি চেষ্টা করেছি (চেষ্টা করেছি এবং কাজ করে এমনটি করার জন্য আমি এর অনেকগুলি পুনরাবৃত্তি চেষ্টা করেছি Sy সম্ভবত সিনট্যাক্সটি সম্ভবত সমস্ত বিভ্রান্ত হয়েছে):

$TEXT = $textbox.Text #$textbox is where the user enters the PC name.
$CMDCOMMAND = "C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\i386\CmRcViewer.exe"
Start-Process '"$CMDCOMMAND" $TEXT'
#iex -Command ('"C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\i386\CmRcViewer.exe"' $TEXT)

কমান্ডটি কেবল কম্পিউটারের পাঠ্য বাক্সে নির্দিষ্ট করে এসসিসিএম দূরবর্তী সংযোগ উইন্ডোটি খুলবে।


আপনি নিশ্চিত যে এসসিসিএম এর কোন সংস্করণ ব্যবহার করছেন তা আমি নিশ্চিত নই, তবে 07 এর জন্য "-1" প্রয়োজন, তবে 2012 সিএমআরসিভিউয়ার চালু করার সময় নয়। মাত্র একটি এফওয়াইআই
কেভিন_

উত্তর:


102

এটা চেষ্টা কর:

& "C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\i386\CmRcViewer.exe" PCNAME

পাওয়ারশেলের কাছে একটি স্ট্রিং "..." কেবল একটি স্ট্রিং এবং পাওয়ারশেল এটি স্ক্রিনে প্রতিধ্বনিত করে মূল্যায়ন করে। যার নাম স্ট্রিংয়ে রয়েছে সেই আদেশটি কার্যকর করতে পাওয়ারশেল পেতে, আপনি কল অপারেটরটি ব্যবহার করেন &


দুর্দান্ত, এটি কাজ করেছে। এটি কি বেশিরভাগ সিএমডি কমান্ডের জন্য কাজ করা উচিত?
ব্যবহারকারী 3585839

4
হ্যাঁ তবে প্রবাসীদের পক্ষে এটি প্রয়োজনীয় নয় যাঁর নাম বা পথে কোনও স্থান নেই। উদাহরণস্বরূপ, আপনি ipconfig.exeব্যবহার না করেই নির্বাহ করতে পারেন &। আপনার কেবলমাত্র একবার ব্যবহার &করা দরকার তা হ'ল স্ট্রিং আকারে একটি কমান্ডের নাম। এবং যখন পথ বা ফাইলের নামের মধ্যে কোনও স্থান থাকে তখন আপনাকে "স্ট্রিং ফর্ম" ব্যবহার করতে হবে।
কিথ হিল

17
আমি যুক্ত করব যে এটি কমান্ড-লাইন স্ট্রিং তৈরি করতে এবং এর সাথে &সম্পাদন করার চেষ্টা করবে না , কারণ পাওয়ারশেল পুরো স্ট্রিংটিকে এক্সিকিউটেবলের নাম মনে করবে। পরিবর্তে কেবল এক্সিকিউটেবলের নামটি উদ্ধৃত করুন এবং পরে এক্সিকিউটেবলের পরামিতিগুলি রাখুন।
বিল_সেটওয়ার্ট

&এবং এর মধ্যে পার্থক্য কী cmd?
টিমো

4
&পাওয়ারশেল কল (ওরফে অনুরোধ) অপারেটর। এটি আপনাকে একটি কমান্ড কার্যকর করতে দেয় যখন আপনার কাছে থাকা একটি স্ট্রিং থাকে যার মধ্যে কমান্ডের নাম বা এক্সেলের পথ থাকে। আপনি কোনও স্ক্রিপ্টব্লক যেমন &{$foo=42}বা কমান্ডআইনো অবজেক্ট যেমন উল্লেখ করতে পারেন $cmd = Get-Command Get-Date; &$cmdcmdএকটি ভিন্ন শেল। নোট করুন যে &কোনও শিশুর স্কোপে কার্যকর করা হয়েছে তাই আপনি লক্ষ করবেন যে স্ক্রিপ্টব্লকটি $fooউপরে সমাপ্ত হয়, $fooসেট করা হয় না।
কিথ হিল

56

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

স্ক্রিপ্টে নিম্নলিখিতটি ইনপুট করুন:

cmd.exe /c "rd /s /q C:\#TEMP\test1"

cmd.exe /c "rd /s /q C:\#TEMP\test2"

cmd.exe /c "rd /s /q C:\#TEMP\test3"

প্রতিটি কমান্ডকে আবার নতুন নতুন লাইনে cmd.exe কল করতে হবে।

এই স্ক্রিপ্টটি এখন স্বাক্ষর করা যাবে এবং পাওয়ারশেলের কাছ থেকে কমান্ড প্রম্পট / cmdসরাসরি কমান্ড আউটপুট করে চালানো যাবে ।

ব্যাচ ফাইল চালানোর চেয়ে এটি অনেক বেশি নিরাপদ উপায়!


এটি আমার জন্য কাজ করে মহান। আমি চালানোর চেষ্টা sc query serviceNameকরছিলাম : পাওয়ারশেল থেকে ভেবেছিল এটি কার্যকর হবে তবে আউটপুট হবে না। আমি & কৌশলটির বিভিন্ন পুনরাবৃত্তি চেষ্টা করেছি, কোনও ডাইস নেই। তবে আপনি যেভাবে কাজটি করেছিলেন তা এটি চালিয়ে যান running এরপরে আমি cmd.exe / হিট করব? অন্যান্য আশ্চর্য কি আমার জন্য অপেক্ষা করছে তা দেখার জন্য। আমি যখন প্রয়োজন তখন কেবল সিএমডি চালানো পছন্দ করি।
পল মাসেক 21

9

একটি সমাধান হ'ল পাওয়ারশেল থেকে সিএমডি পর্যন্ত আপনার কমান্ডটি পাইপ করা । নিম্নলিখিত কমান্ডটি চালানো কমান্ডটি notepad.exeসিএমডি-র দিকে পাইপ করবে , যা নোটপ্যাড অ্যাপ্লিকেশনটি খুলবে।

PS C:\> "notepad.exe" | cmd

কমান্ডটি সিএমডি-এ চলার পরে, আপনি পাওয়ারশেল প্রম্পটে ফিরে আসবেন, এবং আপনার পাওয়ারশেল স্ক্রিপ্টটি চালিয়ে যেতে পারেন।


সম্পাদনা

সিএমডির স্টার্টআপ বার্তা দেখানো হয়েছে

এমকিলেটমেন্ট ০ পয়েন্ট হিসাবে , এই পদ্ধতিটি সিএমডির শুরু বার্তাটি দেখায়। আপনি যদি অন্য পদ্ধতিতে উপরের পদ্ধতিটি ব্যবহার করে আউটপুটটি অনুলিপি করতে চান তবে এটির সাথে প্রারম্ভ বার্তাটি অনুলিপি করা হবে।


এটি যখন কাজ না করে তখনও কাজ করতে পারে &। যেমন & "mklink"আমার জন্য কাজ করে নি যখন "mklink" | cmdকাজ
moudrick

2

যাদের এই তথ্যের প্রয়োজন হতে পারে তাদের জন্য:

আমি বুঝতে পেরেছি যে আপনি PATHপিএস স্ক্রিপ্ট থেকে আপনার মধ্যে একটি কমান্ড চালিয়ে যেতে পারেন এবং এটি কাজ করা উচিত।

কখনও কখনও আপনাকে এই কমান্ডটি প্রি-লঞ্চ করতে হতে পারে cmd.exe /c

উদাহরণ

পিএস স্ক্রিপ্ট থেকে গিট কল করা হচ্ছে

আমাকে gitআবৃত একটি ক্লায়েন্টকে পুনরায় প্যাকেজ করতে হয়েছিল Chocolatey(যারা জানেন না তাদের পক্ষে এটি উইন্ডোজের জন্য এক ধরণের অ্যাপ-স্টোর) যা পিএস স্ক্রিপ্টগুলি ব্যাপকভাবে ব্যবহার করে।

আমি বুঝতে পারলাম যে, একবার gitহয় PATH, মত কমান্ড

$ca_bundle = git config --get http.sslCAInfo

ভেরিয়েবলের git crtমধ্যে ফাইলের অবস্থান সংরক্ষণ করবে $ca_bundle

একটি অ্যাপ খুঁজছেন

আর একটি উদাহরণ যা বর্তমান এসও পোস্টের সংমিশ্রণ এবং এই এসও পোস্ট হ'ল whereকমান্ডের ব্যবহার

$java_exe = cmd.exe /c where java

ভেরিয়েবলের java.exeমধ্যে ফাইলের অবস্থান সংরক্ষণ করবে $java_exe


4
আপনার কেবল cmd /cতার অভ্যন্তরীণ কমান্ডগুলি যেমন: অনুরোধ করা দরকার mklink। বিপরীতে, where.exeএকটি বাহ্যিক প্রোগ্রাম, যাতে আপনি এটি সরাসরি আবেদন করতে পারেন। তবে পাওয়ারশেলের অন্তর্নির্মিত whereউপন্যাসের (যেমন Where-Object) নামের সাথে কোনও নাম বিরোধের কারণে আপনাকে অবশ্যই ব্যবহার করতে হবে where.exe; যেমন where.exe java,।
mklement0

নাকি কেবল Get-Commandকল করার পরিবর্তে পাওয়ারশেল ব্যবহার করবেন cmd? আগের মত একই:$java_exe = $(Get-Command java.exe).Source
dtasev

-1

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

আপনার যদি একাধিক কমান্ডের প্রয়োজন হয় তবে -scriptblockবিকল্পটি সহ ইনভোক-এক্সপ্রেশন সেন্টিমিডলেট ব্যবহার করা উচিত ।


4
এই ক্ষেত্রে ইনভোক-কমান্ডের প্রয়োজন নেই (কীথ হিলের উত্তর দেখুন)।
বিল_সেটওয়ার্ট

হ্যাঁ আমি এর সাথে একমত আমি স্ক্রিপ্টিং সমাধান সম্পর্কে আরও চিন্তা ছিল।
টিম ক্রিস্টিন 21

4
কমান্ডটি কোনও স্ক্রিপ্ট থেকে চালানো হয়েছে কিনা তা বিবেচ্য নয়। এই ক্ষেত্রে ইনভোক-কমান্ড ব্যবহার করা এখনও প্রয়োজনীয় নয়।
বিল_সেটওয়ার্ট


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