অন্য .ps1 ফাইল থেকে কীভাবে একটি .ps1 চালানো যায়?


13

আমার দুটি পাওয়ারশেল ফাইল রয়েছে। a.ps1 এবং b.ps1।

A.ps1 এর একটি কেন্দ্র পয়েন্টে আমি b.ps1 এ কোড এক্সিকিউট করা শুরু করতে এবং a.ps1 স্ক্রিপ্টটি শেষ করতে চাই।

উভয় ফাইল একই ফোল্ডারে অবস্থিত তা বিবেচনা করে কীভাবে করবেন?


এই মুহুর্তে আমি কোনও সাফল্য ছাড়াই পিএস 'পাথ ফাইল' ব্যবহার করছি
গিব্বোক

উত্তর:


4

B.ps1 যদি নতুন পাওয়ার শেল প্রক্রিয়াতে কার্যকর করা হয় তবে তা ঠিক? যদি তাই হয় তবে নীচেরগুলিতে আপনার বর্ণনা অনুযায়ী যা করা উচিত।

Invoke-Item (start powershell ((Split-Path $MyInvocation.InvocationName) + "\b.ps1"))

"ইনভোক-এক্সপ্রেশন" একই প্রক্রিয়াতে কার্যকর হয় তবে b.ps1 এর সমাপ্তির জন্য অপেক্ষা করে।


22

A.ps1 এ,

& .\b.ps1

যেভাবে আপনি অন্যান্য প্রোগ্রামগুলিকে ডাকছেন


2

আমি এটি অন্য একটি নিবন্ধ থেকে পেয়েছি তবে এটি এখানে প্রয়োগ করতে পারে: ধন্যবাদ ( https://stackoverflow.com/users/3905079/briantist )

প্রথমত, আপনি যদি কোনও একক সেশনে রিমোট মেশিনে একাধিক কল করতে চান তবে প্রথমে একটি পিএসএসেশন তৈরি করুন:

$session = New-PSSession -ComputerName $ComputerName

তারপরে পরবর্তী সমস্ত কলগুলিতে সেই সেশনটি ব্যবহার করুন:

Invoke-Command -Session $session -File $filename
Invoke-Command -Session $session -ScriptBlock {
# Some code

Done তারপরে আপনার কাজ শেষ হয়ে গেলে সেশনটি বন্ধ করুন:

Remove-PSSession -Session $session

এছাড়াও আপনি যদি ঠিক না জানতেন তবে এই স্ক্রিপ্টটি হবে তবে আপনার স্ক্রিপ্টটি শুরু হবে জানুন আপনি এটি করতে পারেন:

$strInst = Get-ChildItem -Path $PSScriptRoot -Filter Import-Carbon.ps1 -recurse -ErrorAction SilentlyContinue -Force | Select Directory
Invoke-Experssion (start Powershell ($strinst\Import-Carbon.ps1)

(আমার এটি)

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