স্ক্রিপ্ট পরীক্ষার জন্য পাওয়ারশেলের সমতুল্য ইকো


233

আমি আউটপুট ভেরিয়েবল এবং মানগুলি আউট করতে চাই পাওয়ারশেল স্ক্রিপ্টে এবং পতাকাগুলি সেট আপ করে এবং স্ক্রিপ্ট জুড়ে ডেটা ম্যাট্রিকুলেট দেখে।

আমি এই কিভাবে করব?

উদাহরণস্বরূপ, নিম্নলিখিত পিএইচপি কোডের সাথে পাওয়ারশেল সমতুল্য কী হবে?

echo "filesizecounter: " . $filesizecounter 

পাওয়ারজিইউআইয়ের সাথে আসা স্ক্রিপ্ট-সম্পাদক / ডিবাগারটি দেখুন । আপনি যা করছেন তার জন্য এটি উপযুক্ত হতে পারে। আমি বুঝেছি যে পাওয়ারশেল 2 একটি ডিবাগার নিয়ে আসে (তবে আমি এটি চেষ্টা করি নি)।
ড্যান-জিএফ

উত্তর:


275

বিভিন্ন উপায় আছে:

Write-Host: ফাংশন / সেমিডলেট আউটপুট অন্তর্ভুক্ত না করে সরাসরি কনসোলে লিখুন। অগ্রভূমি এবং পটভূমি রঙ সেট করার অনুমতি দেয়।

Write-Debug: $DebugPreferenceচালিয়ে যান বা থামাতে সেট করা থাকলে কনসোলে সরাসরি লিখুন ।

Write-Verbose: $VerbosePreferenceচালিয়ে যান বা থামাতে সেট করা থাকলে কনসোলে সরাসরি লিখুন ।

পরেরটি অতিরিক্ত alচ্ছিক তথ্যের Write-Debugজন্য, ডিবাগিংয়ের জন্য তৈরি করা হয় (সুতরাং এই ক্ষেত্রে এটি উপযুক্ত মনে হয়)।

অতিরিক্ত : ইন PSH2 (অন্তত) স্ক্রিপ্ট cmdlet ব্যবহার স্বয়ংক্রিয়ভাবে পাবেন বাঁধাই -Verboseএবং -Debugসুইচ পরামিতি, স্থানীয়ভাবে সক্রিয় Write-Verboseএবং Write-Debug(অর্থাত পক্ষপাত ভেরিয়েবল অগ্রাহ্য করা হবে) কম্পাইল cmdlets ও সরবরাহকারী হিসাবে।


4
রাইটিং-ডিবাগ এবং রাইট-ভারবোজ সম্পর্কে দুর্দান্ত জিনিসটি হ'ল আপনি আপনার কোডটিতে আপনার ডিবাগ স্টেটমেন্টগুলি রেখে দিতে পারেন এবং উপযুক্ত অগ্রাধিকার ভেরিয়েবলটি ব্যবহার করে যখন আপনার প্রয়োজন হয় তখন কেবল আউটপুট চালু করতে পারেন। সময় বাঁচায় এবং আপনার ফাংশনগুলির অন্যান্য ব্যবহারকারীর জন্য একটি দুর্দান্ত বৈশিষ্ট্য।
জেসনমারেচার

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

113

পাওয়ারশেলের একটি উপনাম ম্যাপিং প্রতিধ্বনি রয়েছে Write-Outputতাই:

echo "filesizecounter : $filesizecounter"


7
echoWrite-Outputমাইক্রোসফ্টের টেকনেট অনুসারে একটি নাম এবং এখানে
গ্লেন লরেন্স

2
ধন্যবাদ গ্লেন, দেখে মনে হচ্ছে যে আমি এই পোস্ট করার পরে 6 বছরের মধ্যে ওরফেটিকে পুনরায় তৈরি করা হয়েছে। কোনটি ভাল, পাইপলাইনটিকে বাইপাস করার সাথে সাথে লিখিত-হোস্টটি ব্যবহার করা উচিত নয়। আমি এটিকে ইঙ্গিত করতে আমার উত্তর আপডেট করেছি। ধন্যবাদ!
জাস্টিন আর।

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

33

পাওয়ারশেল ইন্টারপোলেট করে, তাই না?

পিএইচপি-তে

echo "filesizecounter: " . $filesizecounter 

এই হিসাবে লেখা যেতে পারে:

echo "filesizecounter: $filesizecounter" 

পাওয়ারশেলের মধ্যে এর মতো কিছুতে আপনার প্রয়োজন অনুসারে কাজ করা উচিত:

Write-Host "filesizecounter: $filesizecounter"

9
এই প্রশ্নের পিএইচপি-র কোনও কিছুর সাথে কোনও সম্পর্ক নেই
রেগেইগুইটার


14

পাওয়ারশেলের প্রতিধ্বনির সহজতম উপায়টি কেবল স্ট্রিং অবজেক্ট তৈরি করা এবং পাইপলাইনটিকে আউটপুট দেওয়া যাক:

$filesizecounter = 8096
"filesizecounter : $filesizecounter"

অবশ্যই, লেখার * পদ্ধতি ব্যবহার না করার সময় আপনি কিছুটা নমনীয়তা ছেড়ে দেন।


9

ইকোটি লেখার- আউটপুটটির জন্য উপনাম, যদিও এটি রাইট-হোস্টের মতো দেখা যায়

এটি নয় পাওয়ারোশালায় ইকো এবং রাইট-হোস্টের মধ্যে পার্থক্য কী?

প্রতিধ্বনি হ'ল লিখন-আউটপুট, যা সাফল্য আউটপুট প্রবাহে লিখতে একটি নাম। এটি পাইপলাইনগুলির মাধ্যমে আউটপুট প্রক্রিয়াজাত করতে বা ফাইলগুলিতে পুনঃনির্দেশ করার অনুমতি দেয়। লিখন-হোস্ট সরাসরি কনসোলে লেখেন, ফলে আউটপুটটি আর পুনঃনির্দেশ / প্রক্রিয়া করা যায় না।



5

আমি জানি না এটি করা বুদ্ধিমান কিনা, তবে আপনি কেবল লিখতে পারেন

"filesizecounter: " + $filesizecounter

এবং এটি আউটপুট করা উচিত:

ফাইলআইসিকিউন্টার: মান


1
"filesizecounter: $filesizecounter"এমনকি আরও খাটো।
jiggunjer

3

পাওয়ারশেলের কয়েকটি সাধারণ কমান্ডের মতো উপাধি রয়েছে echo। পাওয়ারশেলে নিম্নলিখিত টাইপ করুন:

Get-Alias echo

একটি প্রতিক্রিয়া পেতে:

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           echo -> Write-Output

এমনকি গেট-এলিয়াসের একটি নাম রয়েছে gal -> Get-Alias। আপনি gal echoউপনাম পেতে লিখতে পারেন echo

gal echo

অন্যান্য উপাত্তগুলি এখানে তালিকাভুক্ত করা হয়েছে: https://docs.microsoft.com/en-us/powershell/scriptting/learn/ using-fam شنا-- কম্যান্ড- নামসমূহ? ভিউ == পাওয়ারশেল -6--6

cat dir mount rm cd echo move rmdir chdir erase popd sleep clear h ps sort cls history pushd tee copy kill pwd type del lp r write diff ls ren


2

চেষ্টা করুন Get-Content .\yourScript.PS1এবং আপনি আপনার স্ক্রিপ্টের সামগ্রী দেখতে পাবেন।

এছাড়াও আপনি আপনার স্ক্রিপ্ট কোডে এই লাইনটি সন্নিবেশ করতে পারেন:

get-content .\scriptname.PS1
script code
script code

....


প্রকৃত মানগুলি প্রক্রিয়া করা হয় না (উদাহরণস্বরূপ env var প্রতিস্থাপন) সুতরাং জিজ্ঞাসিত প্রশ্নের উত্তর না।
আইসিসটেমস

0

এটিও উল্লেখ করা উচিত, সেট-পিএসডিএসব্যাগ পুরানো স্কুল echo onব্যাচের কমান্ডের অনুরূপ :

Set-PSDebug -Trace 1

এই কমান্ডের ফলে এক্সিকিউটিভ স্ক্রিপ্টের প্রতিটি লাইন প্রদর্শিত হবে:

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

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