কীভাবে স্থায়ী পাওয়ারশেল এ্যালিয়াস তৈরি করবেন


141

আমি একজন তৈরি করতে চান aliasএকটি এর cmdletযে আমি PowerShell বর্তমান অধিবেশন বন্ধ করার পর মেয়াদ শেষ নয়, আসুন আমি এই উপনাম আছে:

C:\Users\Aymen> New-Alias Goto Set-Location

এটি নিখুঁতভাবে Gotoউপনাম তৈরি করে , তবে আমি বর্তমান সেশনটি বন্ধ করার পরেও এটি ব্যবহার করতে চাই, কীভাবে আমি এটি অর্জন করতে পারি।

বিঃদ্রঃ:

পাওয়ারশেল সহায়তা সিস্টেমটি পরামর্শ দেয় যে আমি তৈরি করা এলিয়াসগুলি আমি রফতানি করতে পারি এবং পরের বার যখন আমি একটি নতুন অধিবেশন খুলি তখন সেগুলি আমদানি করতে পারি, আসলে আমি যা খুঁজছিলাম তা আসলে এটি নয়, কারণ আমার পরে কোনও নাম রাখার সরাসরি স্পষ্ট উপায় আছে কি? এটি বিভিন্ন সেশনের মাধ্যমে তৈরি করুন


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

উত্তর:


112

আপডেট - জানুয়ারী 2017

profile.ps1প্রতিবার পাওয়ারশেল শুরু হওয়ার সাথে সাথে কোনও ফাইলশেল কোড কার্যকর করতে একটি ফাইলে এটি সঞ্চয় করা সম্ভব । কমপক্ষে different টি পৃথক পাথ রয়েছে যেখানে কোন ব্যবহারকারী এটি চালিত করতে হবে তার উপর নির্ভর করে কোডটি কোথায় সংরক্ষণ করবেন। আমরা তাদের মধ্যে কেবল ২ টি বিবেচনা করতে পারি: "সমস্ত ব্যবহারকারী" এবং "কেবল আপনার ব্যবহারকারী" পাথ।

সুতরাং আপনার প্রশ্নের উত্তর দেওয়ার জন্য আপনাকে কেবলমাত্র একটি profile.ps1ফাইল তৈরি করতে হবে যা কোড সম্পাদন করতে চান, তা

New-Alias Goto Set-Location

এবং এটি সঠিক পথে সংরক্ষণ করুন:

  • "$Home\Documents" (সি: \ ব্যবহারকারী \ আপনার নাম \ নথি): কেবলমাত্র আপনার ব্যবহারকারী কোডটি কার্যকর করবেন ute
  • $PsHome (সি: \ উইন্ডোজ \ সিস্টেম 32 \ উইন্ডোজপাওয়ারশেল \ ভি 1.0): প্রতিটি ব্যবহারকারী কোডটি কার্যকর করবেন ute

পরিবর্তনগুলি প্রয়োগ করতে সমস্ত ওপেন পাওয়ারশেল দৃষ্টান্তগুলি বন্ধ করুন এবং সেগুলি পুনরায় চালু করুন।

পরামর্শ

  • যদি উভয় পাথে কোনও profile.ps1ফাইল থাকে তবে সমস্ত ব্যবহারকারীর প্রথমে মৃত্যুদন্ড কার্যকর করা হয়, তারপরে ব্যবহারকারীরা নির্দিষ্ট।

  • যদি প্রতিটি ব্যবহারকারীর এর কার্যকরকরণ প্রসারিত করার প্রয়োজন না হয় তবে সর্বদা কোডটিকে ব্যবহারকারী নির্দিষ্ট প্রোফাইলে রাখুন। আপনার ব্যবহারকারীর জায়গাতে ফাইল যুক্ত করার জন্য প্রশাসকের অধিকারের দরকার নেই (অন্যথায় আপনি করেন) এবং আপনি অন্য ব্যবহারকারীর স্থানকে কলুষিত করবেন না।

  • মনে রাখবেন! $PsHomeতাই আপনি উভয় পরিবেশ বিবেচনা করতে আপনি সবসময় চান যদি প্রোফাইল কোড এক্সিকিউট করতে হবে পথ PowerShell এর 32bit এবং 64bit দৃষ্টান্ত মধ্যে পার্থক্য কী। সাধারণত পাথগুলি C:\Windows\System32\WindowsPowerShell\v1.064 বিট পরিবেশের C:\Windows\SysWow64\WindowsPowerShell\v1.0জন্য এবং 32 বিটের জন্য।


9
কোনও ত্রুটি এটি ঠিক কাজ করে নি, আমি নিশ্চিত নই যে এটি কোনও অনুমতি সংক্রান্ত সমস্যা। আমি আসলে এটি কাজ করতে পেরেছি (আমার আগে মন্তব্য করা উচিত)। আমাকে ফোল্ডারটি তৈরি করতে হয়েছিল \Users\{ME}\Documents\WindowsPowerShellএবং তারপরে Microsoft.PowerShell_profile.ps1অন্য পথগুলিতে যোগ করা আমার জন্য কাজ করে।

2
লিঙ্কযুক্ত নিবন্ধ অনুসারে ব্যবহার "$HOME\Documents\WindowsPowerShell"এবং নামকরণ Microsoft.PowerShell_profile.ps1স্কোপটি নন-আইএসই এবং বর্তমান হোস্টের মধ্যে সীমাবদ্ধ রাখে তবে অনুমতিগুলির বিষয়টি (একই "$Home\Documents\profile.ps1" should apply) হওয়া উচিত নয় । সম্ভবত এটি সত্যিই এটি নয়, আমি চেষ্টা করে
দেখাব

2
হাই @Naigel, আমি এটা কাজ করতে এই পদ্ধতির ব্যবহার করা আবশ্যক: superuser.com/questions/516700/... তাই আমাকে চূড়ান্ত সমাধান প্রোফাইলের জন্য ফাইল তৈরি ছিল: New-Item -path $profile -type file -forceযে ফোল্ডার এবং ফাইল তৈরিDocuments\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
ঈগল

57
প্রোফাইলের অবস্থানটি পাওয়ার সর্বোত্তম উপায় হ'ল আপনার পাওয়ারহেল উইন্ডোতে "ইকো $ প্রোফাইল" চালানো।
রাহুল ঝা

2
আপনার প্রোফাইল.ps1 ফাইলটির একটি ব্যাকআপ তৈরির কথা মনে রাখবেন, যেমন উইন্ডোজ ক্রিয়েটার্স আপডেট ফাইলটিকে ডিফল্ট স্থানে সাফ করে দেয় !!
gooleem

109

আপনার $env:WINDIRপাওয়ারশেল ফোল্ডারে সরাসরি এই জাতীয় জিনিস যুক্ত করা ভাল ধারণা নয় ।
প্রস্তাবিত উপায় হ'ল এটি আপনার ব্যক্তিগত প্রোফাইলে যুক্ত করা:

cd $env:USERPROFILE\Documents
md WindowsPowerShell -ErrorAction SilentlyContinue
cd WindowsPowerShell
New-Item Microsoft.PowerShell_profile.ps1 -ItemType "file" -ErrorAction SilentlyContinue
powershell_ise.exe .\Microsoft.PowerShell_profile.ps1

এখন আপনার উপনামটি মাইক্রোসফ্ট-পাওয়ার-শেল_প্রফিল.পি 1 ফাইলটিতে যুক্ত করুন যা এখন খোলা হয়েছে:

function Do-ActualThing {
    # do actual thing
}

Set-Alias MyAlias Do-ActualThing

তারপরে এটি সংরক্ষণ করুন এবং এর সাথে বর্তমান সেশনটি রিফ্রেশ করুন:

. $profile

দ্রষ্টব্য: কেবলমাত্র যদি আপনি অনুমতি ইস্যুটি পান তবে

বিভাগীয় ইনফো: সিকিউরিটিআরার: (:) [], পিএসএস সিকিউরিটি এক্সপশন + ফুললি কিউলিফাইড এরিয়ারআইডি: অননুমোদিত অ্যাক্সেস

নীচের কমান্ডটি ব্যবহার করে আবার সেশনটি রিফ্রেশ করুন।

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

1
দুর্দান্ত মন্তব্য। খুব স্পষ্ট, যদিও আমার পাওয়ারশেলের স্পর্শ নেই।
জাস্টিনবি

9
আমার প্রোফাইল স্ক্রিপ্টটি কার্যকর করার অনুমতি দেওয়ার জন্য আমাকে আরও একটি পদক্ষেপ করতে হয়েছিল। প্রশাসক হিসাবে পাওয়ারশেল চালান, এবং সম্পাদন করুন Set-ExecutionPolicy RemoteSigned -Scope CurrentUser-Scopeবিকল্প একটু বেশি নিরাপদ করে তোলে।
জুমব্যাট

2
এটি একটি দুর্দান্ত পদ্ধতি! দয়া করে মনে রাখবেন না যে ফাংশনটি নিজেই শেলের মধ্যেও উপলব্ধ হয়ে ওঠে, যাতে আপনার সত্যই সেট-এলিয়াস অংশের প্রয়োজন হয় না। শুধু ফাংশন কল MyAlias। এছাড়াও, যুক্তিগুলি পাস করার জন্য @Args, যেমনfunction gs { git status @Args }
অটোমেটিকো

3
@ অটোম্যাটিকো আমি এ সম্পর্কে স্পষ্ট হওয়া পছন্দ করি Set-Aliasকারণ আমি যথাযথ ক্রিয়াগুলির সাথে উপযুক্ত পিএস কনভেনশনগুলি ব্যবহার করে আমার পদ্ধতিগুলির নাম দিতে চাই। তবে হ্যাঁ, আপনি যদি বাছাই না করেন তবে আপনি যা চান তা কেবল আপনার পদ্ধতির নাম দিতে পারেন।
চেজ ফ্লোরেল

1
@ জম্বাট এটি ঠিক আমি ঘন্টার সাথে লড়াই করে যাচ্ছিলাম। আপনাকে ধন্যবাদ, আমি এখন সম্পন্ন।
জাওয়াদ মনসুর

28

2018, উইন্ডোজ 10

আপনি একটি সাধারণ পাওয়ারশেল স্ক্রিপ্টের সাহায্যে যে কোনও ফাইল বা ডিরেক্টরিতে লিঙ্ক করতে পারেন।

একটি ফাইল শর্টকাট স্ক্রিপ্ট রচনা

উইন্ডোজ পাওয়ারশেল আইএসই খুলুন। স্ক্রিপ্ট ফলকে লিখুন:

New-Alias ${shortcutName} ${fullFileLocation}

তারপরে কমান্ড-লাইন ফলকের দিকে যান। এর সাথে আপনার পাওয়ারশেল ব্যবহারকারী প্রোফাইল ঠিকানাটি সন্ধান করুন echo $profile। এই ঠিকানায় স্ক্রিপ্টটি সংরক্ষণ করুন।

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

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

ডিরেক্টরি শর্টকাট স্ক্রিপ্ট রচনা

এটির জন্য আমাদের স্ক্রিপ্টে আরও একটি লাইন দরকার।

function ${nameOfFunction} {set-location ${directory_location}}
New-Alias ${shortcut} ${nameOfFunction} 

বাকিটা ঠিক একই রকম।

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

পাওয়ারশেল স্ক্রিপ্টস সক্ষম করুন

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

পাওয়ারশেল বিভাগে নীচে স্ক্রোল করুন, "বাস্তবায়ন নীতি পরিবর্তন করুন ..." বিকল্পটি ক্লিক করুন এবং প্রয়োগ করুন।

পাওয়ারশেল স্ক্রিপ্টগুলি সক্ষম করা


2
echo $profileফাইল যুক্ত করার জন্য সঠিক অবস্থানটি সন্ধান করতে সহায়তা করার জন্য একটি দুর্দান্ত টিপ। বিস্তৃত উত্তরের জন্য আপনাকে ধন্যবাদ
পেড্রো মার্টিনস টিমতেও দা কস্তার

19

সহজ। উদাহরণ স্বরূপ...

একটি উইন্ডোজ পাওয়ারশেল উইন্ডোটি খুলুন এবং টাইপ করুন:

notepad $profile

তারপরে একটি ফাংশন তৈরি করুন, যেমন:

function goSomewhereThenOpenGoogleThenDeleteSomething {
    cd C:\Users\
    Start-Process -FilePath "http://www.google.com"
    rm fileName.txt
}

তারপরে এটি ফাংশন নামের অধীনে টাইপ করুন:

Set-Alias google goSomewhereThenOpenGoogleThenDeleteSomething

এখন আপনি উইন্ডোজ পাওয়ারশেলে "গুগল" শব্দটি টাইপ করতে পারেন এবং এটি আপনার ফাংশনের মধ্যে কোডটি কার্যকর করতে পারে!


windows প্রোফাইলটি উইন্ডোজ 10-এ কোনও ডিফল্ট পরিবেশ পরিবর্তনশীল বলে মনে হচ্ছে না এটি কীসের দিকে ইঙ্গিত করার কথা?
শব্দসুখে

@ওয়ার্ডফোরহিউজ - $ প্রোফাইলে স্বয়ংক্রিয় চলকটি বর্তমান সেশনে পাওয়া পাওয়ারশেল প্রোফাইলগুলির পাথগুলি সঞ্চয় করে। এটি উইন্ডোজ পাওয়ারশেলের অন্তর্ভুক্ত।
স্টার্লিং বোর্ন

1
এটি কোনও সহজ সমাধান সরবরাহিত বার ছিল।
ফিল করুন

এটির কাজ পেতে আমাকে 'পাওয়ারশেল স্ক্রিপ্টগুলি সক্ষম করুন' (অন্য উত্তরে) সক্ষম করতে হয়েছিল। মারাত্মকভাবে সুপার সহজ!
রকি কেভ

10

কেবলমাত্র সম্ভাব্য অবস্থানের তালিকায় যোগ করতে ...

এটি আমার পক্ষে কার্যকর হয়নি: \Users\{ME}\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

তবে এটি করেছে: \Users\{ME}\OneDrive\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

আপনার যদি প্রোফাইল না থাকে বা আপনি একটি সেট আপ করতে চাইছেন, নীচের কমান্ডটি চালান, এটি ফোল্ডার / ফাইলগুলি প্রয়োজনীয় তৈরি করবে এবং এটি কোথায় থাকবে তা আপনাকে জানিয়ে দেবে! New-Item -path $profile -type file -force


5

প্রোফাইল 1.psl ফাইল তৈরি করতে, নিম্নলিখিত কমান্ডটি টাইপ করুন:

নতুন-আইটেম $ প্রোফাইলে। বর্তমান ব্যবহারকারী-সমস্তহোস্টস-আইটেম টাইপ ফাইল -ফরাস

ফাইলটি অ্যাক্সেস করতে পরবর্তী কমান্ডটি টাইপ করুন:

এটি $ প্রোফাইল C বর্তমানের ব্যবহারকারীরাহলহোস্টস

নোট করুন যদি আপনি এটি আগে না করেন তবে আপনি দেখতে পাবেন যে আপনার সম্পাদন নীতির কারণে আপনি স্ক্রিপ্টটি পরিচালনা করতে পারবেন না, যা আপনাকে নিষিদ্ধ থেকে সীমাবদ্ধ (ডিফল্ট) এ পরিবর্তন করতে হবে।

স্ক্রিপ্টটি বন্ধ করে তা করতে এবং এই আদেশটি টাইপ করুন:

সেট-এক্সিকিউশনপলিসি -স্কোপ কারেন্ট ইউজার

তারপর:

RemoteSigned

তারপর আবার এই আদেশ:

এটি $ প্রোফাইল C বর্তমানের ব্যবহারকারীরাহলহোস্টস

তারপরে স্ক্রিপ্টে আপনার উপাত্তগুলি টাইপ করুন, এটি সংরক্ষণ করুন এবং আপনার কম্পিউটারটি পুনরায় চালু করার পরেও আপনি পাওয়ারশেল চালানোর সময় প্রতি চালানো উচিত।


3
আপনি সম্ভবত চাই: Set-ExecutionPolicy RemoteSigned। সুপারিশ করবেন না Unrestricted। সূত্র: itprotoday.com/management-mobility/…
ফিল্ট

2

এটি কিছুটা অভিনব ... তবে এটি কার্যকর:

পদক্ষেপ 1: একটি পাওয়ারশেল প্রোফাইল তৈরি করুন:

FILE: install_profile.ps1
# THIS SCRIPT BLOWS AWAY YOUR DEFAULT POWERSHELL PROFILE SCRIPT
#   AND INSTALLS A POINTER TO A GLOBAL POWERSHELL PROFILE

$ErrorActionPreference = "Stop"

function print ([string]$msg)
{
    Write-Host -ForegroundColor Green $msg
}

print ""

# User's Powershell Profile
$psdir  = "$env:USERPROFILE\Documents\WindowsPowerShell"
$psfile = $psdir + "\Microsoft.PowerShell_profile.ps1"

print "Creating Directory: $psdir"
md $psdir -ErrorAction SilentlyContinue | out-null

# this is your auto-generated powershell profile to be installed
$content = @(
    "",
    ". ~/Documents/tools/profile.ps1",
    ""
)

print "Creating File: $psfile"
[System.IO.File]::WriteAllLines($psfile, $content)

print ""

# Make sure Powershell profile is readable
Set-ExecutionPolicy -Scope CurrentUser Unrestricted

পদক্ষেপ 2: তারপরে সরঞ্জামগুলিতে Doc / নথি / সরঞ্জাম / প্রোফাইল.ps1:

function Do-ActualThing {
    # do actual thing
}

Set-Alias MyAlias Do-ActualThing

ধাপ 3:

$ সেট-এক্সিকিউশনপলিসি -স্কোপ কারেন্ট ইউজার অনিয়ন্ত্রিত $ ./install_profile.ps1

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