পাওয়ারশেল স্ক্রিপ্টটি কীভাবে চালানো যায়


708

আমি কীভাবে পাওয়ারশেল স্ক্রিপ্টটি চালাব?

  • আমার কাছে myscript.ps1 নামে একটি স্ক্রিপ্ট রয়েছে
  • আমি সমস্ত প্রয়োজনীয় ফ্রেমওয়ার্ক ইনস্টল করেছি
  • আমি সেই কার্যকর করার নীতি বিষয় সেট করেছি
  • আমি এই এমএসডিএন সহায়তা পৃষ্ঠাতে থাকা নির্দেশাবলী অনুসরণ করেছি এবং এটিকে এভাবে চালানোর চেষ্টা করছি: powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1'(সাথে বা ছাড়া --noexit)

ফাইল নাম আউটপুট বাদে যা ঠিক কিছু দেয় না।

কোনও ত্রুটি নেই, কোনও বার্তা নেই, কিছুই নেই। ওহ, আমি যুক্ত করার পরে -noexit, একই জিনিস ঘটে তবে আমি পাওয়ারশেলের মধ্যেই রয়েছি এবং নিজেই প্রস্থান করতে হবে।

.Ps1 ফাইলটি কোনও প্রোগ্রাম চালানোর এবং সেই প্রোগ্রামের আউটপুটের উপর নির্ভর করে ত্রুটি স্তরটি ফেরত দেওয়ার কথা। তবে আমি নিশ্চিত যে আমি এখনও সেখানে পাচ্ছি না।

আমি কি ভুল করছি?


2
শুরু powershellহিসাবে আপনি শুরু হতো cmd। এখন আপনি এখানে myscript.ps1স্ক্রিপ্টটি যে কোনও এক্সিকিউটেবল হিসাবে চালিত করতে পারবেন (পাওয়ারশেল উইন্ডোতে), অর্থাৎ.\myscript.ps1
প্যারাসিশ

উত্তর:


730
  1. উইন্ডোজ পাওয়ারশেল আরম্ভ করুন এবং PSকমান্ড প্রম্পট উপস্থিত হওয়ার জন্য এক মুহূর্ত অপেক্ষা করুন
  2. স্ক্রিপ্ট যেখানে থাকে সেই ডিরেক্টরিতে নেভিগেট করুন

    PS> cd C:\my_path\yada_yada\ (enter)
  3. স্ক্রিপ্টটি কার্যকর করুন:

    PS> .\run_import_script.ps1 (enter)

আমি কি মিস করছি ??

বা: আপনি এ থেকে পাওয়ারশেল স্ক্রিপ্টটি চালাতে পারেন cmd.exe:

powershell -noexit "& ""C:\my_path\yada_yada\run_import_script.ps1""" (enter)

এই ব্লগ পোস্ট অনুযায়ী এখানে

অথবা আপনি নিজের সি # অ্যাপ্লিকেশন থেকে আপনার পাওয়ারশেল স্ক্রিপ্টটি চালাতে পারেন :-)

আপনার সি # অ্যাপ্লিকেশন থেকে অসিনক্রোনাকলি পাওয়ারশেল স্ক্রিপ্টগুলি সম্পাদন করুন


19
আপনার ব্লগ পোস্ট লিঙ্ক এটি করেছে। আমাকে ব্যবহার করতে হবে powershell -noexit "& "C:\yada_yada\run_import_script.ps1"( তিনটি ডাবল উদ্ধৃতি লক্ষ্য করুন ) আমি সত্যিই বুঝতে পারি না কেন, তবে এই মুহুর্তে, আমি সত্যিই যত্ন নিচ্ছি না :) অনেক অনেক ধন্যবাদ!
পেক্কা


16
টেকনেট.মাইক্রোসফট.ইন- ইউএস / লিবারি / আই 176949.aspx এর মতে , '&' এর জন্য "যদি আপনি প্রকৃতপক্ষে স্ট্রিংয়ের মানটি নির্বাহ করতে চান (এটি যদি আপনি স্ক্রিপ্টটি চালাতে চান তবে যার পথটি আবদ্ধ রয়েছে) ডাবল উদ্ধৃতি) আপনার কল অপারেটরের (এম্পারস্যান্ড) সাথে পথটির প্রিফেস করতে হবে।
ডগ ডসন

29
আমার সদ্য নির্মিত স্বাক্ষরযুক্ত স্বাক্ষরিত স্ক্রিপ্টের জন্য আমি পাওয়ারশেলের ডিফল্ট এক্সিকিউটিপলিকে বাইপাস না করা পর্যন্ত এগুলির কোনওটিই আমার পক্ষে কাজ করেনি। অন্যান্য জিনিসের মধ্যে প্রশাসক হিসাবে পাওয়ারশেল পুনরায় আরম্ভের প্রয়োজন। সম্পূর্ণরূপে @ লুক্পপ্লেট-এর সাথে একমত - এটি সাধারণ ব্যবহারের ক্ষেত্রে প্রায় 20 মিনিট গুগলিং এবং ফিউজিং গ্রহণ করা উজ্জ্বল। আর ত্রুটির বার্তা! স্পষ্টতই এই ছেলেরা 70 এর দশকে আইবিএম ... এ কাজ করেছিল।
স্পাইকএক্সএফ

14
নীচে একটি মন্তব্যে বলা হয়েছে, কার্যকর করার নীতিটি বাইপাস করতে হবে। এখানে যে আইটেমগুলির বিষয়ে আলোচনা করা হয়নি তার মধ্যে একটি হ'ল প্যারামিটারে পাস হওয়া কমান্ড লাইন থেকে পাওয়ারশেল স্ক্রিপ্ট কীভাবে চালানো যায়। এটি করতে: টাইপ করুনpowershell -executionpolicy bypass ".\myscript.ps1 yadayadayada"
জিম লাহমান

229

আপনি যদি পাওয়ারশেল ২.০-তে থাকেন তবে -Fileঅন্য পরিবেশ থেকে যেমন কোনও সেমিড.এক্স.এক্সপি স্ক্রিপ্ট শুরু করতে পাওয়ারশেল.এক্সির পরামিতি ব্যবহার করুন। উদাহরণ স্বরূপ:

Powershell.exe -File C:\my_path\yada_yada\run_import_script.ps1

5
এই জাতীয় অনুরোধে প্যারামিটার যুক্ত করার কোনও উপায় আছে কি?
আলেকজান্ডার গ্রো

11
স্ক্রিপ্ট ফাইলের পাথের পরে আপনার খালি আরোগুলি অনুসরণ করতে সক্ষম হওয়া উচিত। পাওয়ারশেল.এক্সই ব্যবহার থেকে - [-ফাইলে <ফাইল ফাইল> <আরগস>]
কিথ হিল

"লোড করা যায় না কারণ এই সিস্টেমে স্ক্রিপ্টগুলি কার্যকর করা অক্ষম Please" আরও
পাভেল ভ্লাসভ

7
আপনি যদি নিজের সিস্টেমে পাওয়ারশেল স্ক্রিপ্ট এক্সিকিউশনটি সক্ষম না করে থাকেন তবে প্যারামিটার যুক্ত করুন-ExecutionPolicy Bypass
কিথ হিল

4
অবগতির জন্য এই আমার অভিজ্ঞতা PowerShell 1.0 (উইন্ডোজ 2012 সার্ভার) জন্য কাজ করে
knocte

189

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

powershell [-noexit] -executionpolicy bypass -File <Filename>

11
এছাড়াও, -nologoস্টার্টআপ ব্যানার থেকে মুক্তি পাওয়ার বিকল্প অন্তর্ভুক্ত করুন
সোদেব

73

টাইপ করুন:

powershell -executionpolicy bypass -File .\Test.ps1

দ্রষ্টব্য: এখানে Test.ps1পাওয়ারশেল স্ক্রিপ্ট।


এটি একটি পাওয়ারশেলের মাধ্যমে কার্যকর করা উচিত কারণ powershell -executionpolicy bypass -File .\Test.ps1ধরে নেওয়া উচিত যে আপনি বর্তমান ওয়ার্কিং ডিরেক্টরিতে টেস্ট.পিএস 1 রয়েছে
ইয়েও_মেনগ

29

আমারও একই সমস্যা ছিল এবং আমি চেষ্টা করে চেষ্টা করেছি ... শেষ পর্যন্ত আমি ব্যবহার করেছি:

powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'"

এবং এই লাইনটি ব্যাচ-ফাইলে রাখুন এবং এটি কাজ করে।


22

যদি আপনার কাছে কেবল পাওয়ারশেল 1.0 থাকে তবে এটি কৌশলটি যথেষ্ট পরিমাণে করতে পারে বলে মনে হচ্ছে:

powershell -command - < c:\mypath\myscript.ps1

এটি স্ক্রিপ্ট ফাইলটি পাওয়ারশেল কমান্ড লাইনে পাইপ দেয়।


3
যখন সুরক্ষা নীতিগুলি স্ক্রিপ্ট প্রয়োগের অনুমতি দেয় না তখন কার্যকর কৌশল।
অ্যারন লরিঞ্জ

17

বেশ সহজ. উইন্ডোজ এবং শেল মেনুতে .ps1 ফাইলটিতে রাইট ক্লিক করুন রান উইথ পাওয়ারশেলের উপর ক্লিক করুন ।


এক্সিকিউশন পলিসি সহ স্ক্রিপ্টগুলির সম্পাদন সক্ষম না করে দ্রুত স্ক্রিপ্ট চালানোর জন্য এটি কাজ করে। ধন্যবাদ!
b01

এই আমি খুঁজছিলাম, ধন্যবাদ!
আমল

11

সেমিডিডি (বিএটি) ফাইলটি ব্যবহার করে:

@echo off
color 1F
echo.

C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "PrepareEnvironment.ps1"

:EOF
echo Waiting seconds
timeout /t 10 /nobreak > NUL

আপনার যদি প্রশাসক হিসাবে চালানো দরকার :

  1. কমান্ড প্রম্পটের দিকে নির্দেশিত একটি শর্টকাট তৈরি করুন (আমি এর নাম প্রশাসনিক কমান্ড প্রম্পট দিয়েছি)
  2. শর্টকাটের বৈশিষ্ট্যগুলি খুলুন এবং সামঞ্জস্যতা ট্যাবে যান
  3. প্রিভিলেজ স্তর বিভাগের অধীনে, "প্রশাসক হিসাবে এই প্রোগ্রামটি চালান" এর পাশের চেকবক্সটি চেক করা আছে কিনা তা নিশ্চিত করুন


10

যদি আপনার স্ক্রিপ্টটির নাম .ps1এক্সটেনশন দিয়ে রাখা হয় এবং আপনি পাওয়ারশেল উইন্ডোতে থাকেন তবে আপনি কেবল চালান./myscript.ps1 (ধরে নিচ্ছেন ফাইলটি আপনার কার্যনির্বাহী ডিরেক্টরিতে রয়েছে)।

এটি উইন্ডোজ 10 এ যাইহোক যাইহোক পাওয়ারশেল সংস্করণ 5.1 এর সাথে সত্য, এবং আমি মনে করি না যে আমি এটি সম্ভব করার জন্য কিছু করেছি।


2
কিভাবে এই প্রশ্নের উত্তর দেয়?
পিটার মর্টেনসেন

4
এটি একেবারে প্রশ্নের উত্তর দেয়: আমি কীভাবে একটি পাওয়ারশেল স্ক্রিপ্ট চালাব? উত্তর: স্টার্টআপ পাওয়ারশেল কনসোল, তারপরে স্ক্রিপ্টটি কার্যকর করুন। সহজ। সহজ। লিনাক্সেও কাজ করে।
থুফির

4
এটি একেবারে প্রশ্নের উত্তর দেয় এবং ঠিক আমি যা খুঁজছিলাম। যেমনটি myscript.ps1কাজ করে নি, ত্রুটি ছুঁড়েছে, তবে ./এটি কার্যকর করা হচ্ছে uting
জেফ

7
  • স্ক্রিপ্টের পথটি দিন, সেমিথ্রি দ্বারা পথ নির্ধারণ:

    $> . c:\program file\prog.ps1

  • পাওয়ারশেলের এন্ট্রি পয়েন্ট ফাংশনটি চালান:

    উদাহরণ স্বরূপ, $> add or entry_func or main


আপনার কমান্ডগুলি একটি >$ . c:\program file\prog.ps1 '.' is not recognized as an internal or external command, operable program or batch file.>$ add or entry_func or main 'add' is not recognized as an internal or external command, operable program or batch file.
সিএমডি

7

আপনি যদি উইন্ডোজ টাস্ক শিডিয়ুলারের সাথে পাওয়ারশেল স্ক্রিপ্টটি চালাতে চান তবে দয়া করে নীচের পদক্ষেপগুলি অনুসরণ করুন:

  1. একটি কাজ তৈরি করুন

  2. সেট Program/ScriptকরুনPowershell.exe

  3. সেট Argumentsকরুন-File "C:\xxx.ps1"

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


1

-Fileফাইলের নামের সামনে প্যারামিটার ব্যবহার করুন । উদ্ধৃতিগুলি পাওয়ারশেলকে এটি কমান্ডের একটি স্ট্রিং বলে মনে করে।


1

আমার একটি খুব সহজ উত্তর আছে যা কাজ করে:

  1. প্রশাসক মোডে পাওয়ারশেল খুলুন
  2. চালান: set-executionpolicy unrestricted
  3. নিয়মিত পাওয়ারশেল উইন্ডোটি খুলুন এবং আপনার স্ক্রিপ্টটি চালান।

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

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