ব্যাচের "% ~ dpn0" এর সমতুল্য পাওয়ারশেলটি কী?


0

আমি পাওয়ারশেলে নতুন এবং আমি নিজেকে জিজ্ঞাসা করেছি যে আমি কীভাবে একটি পাওয়ারশেল স্ক্রিপ্টে নিম্নলিখিত ভেরিয়েবলগুলি রাখতে পারি? আমি পাওয়ারশেলে একটি পরিবর্তনশীল কীভাবে সেট করতে হয় তা জানি তবে কীভাবে পেতে হয় তা আমি জানি না "%~dpn0"

set pgm=%~n0
set log=%~dpn0.log
set csv=%~dpn0.csv
set dir=%~dp0users
set txt=%~n0.txt
set fix=%~dpn0.fix

একজন উত্তরদাতাকে কী বলতে যথেষ্ট সহায়ক ছিল "ব্যাচে,% ~ dpn0 বর্তমানে সম্পাদনকারী স্ক্রিপ্টটির ড্রাইভ, পথ এবং নাম প্রদান করে।" আপনি ছিলেন না
বার্লোপ

উত্তর:


2

ব্যাচে, %~dpn0বর্তমানে সম্পাদন করা স্ক্রিপ্টটির ড্রাইভ, পথ এবং নাম প্রদান করে।

পাওয়ারশেল স্ক্রিপ্টে এটি করতে আপনি ব্যবহার করতে পারেন $MyInvocation.MyCommand.Definition

উদাহরণ:

$scriptPathAndName = $MyInvocation.MyCommand.Definition
write-host $scriptPathAndName

আপনি যে স্ক্রিপ্টটি ব্যবহার করতে পারেন তার কেবলমাত্র পথ পেতে:

$scriptPath = split-path -parent $MyInvocation.MyCommand.Definition
write-host $scriptPath

(দ্রষ্টব্য: পাওয়ারশেল ভি 3-তে আপনি পূর্বনির্ধারিত ভেরিয়েবলটি উল্লেখ করে স্ক্রিপ্টের পাথ (নাম ছাড়াই) পেতে পারেন $PSScriptRoot)

স্ক্রিপ্টটির নাম পেতে:

$scriptName = split-path -leaf $MyInvocation.MyCommand.Definition
write-host $scriptName

স্প্লিট-পাথের বিকল্পগুলির জন্য আরও তথ্য: https://technet.microsoft.com/en-us/library/hh849809.aspx


0

আমি মনে করি আপনি এরকম কিছু খুঁজছেন

$ScriptPath = Split-Path $MyInvocation.MyCommand.Path

তারপরে আমি মনে করি -Parentআপনাকে পিডব্লিউডি দেবে, তবে আপনার এটির দরকার নেই।

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