我是 powershell 新手,我问自己如何在 powershell 脚本中放入以下变量?我知道如何在 powershell 中设置变量,但我不知道如何获取"%~dpn0"
。
set pgm=%~n0
set log=%~dpn0.log
set csv=%~dpn0.csv
set dir=%~dp0users
set txt=%~n0.txt
set fix=%~dpn0.fix
答案1
批量%~dpn0
返回当前正在执行的脚本的驱动器、路径和名称。
要在 PowerShell 脚本中执行相同操作,您可以使用$MyInvocation.MyCommand.Definition
。
例如:
$scriptPathAndName = $MyInvocation.MyCommand.Definition
write-host $scriptPathAndName
要获取脚本的路径,您可以使用:
$scriptPath = split-path -parent $MyInvocation.MyCommand.Definition
write-host $scriptPath
(注意:在 Powershell v3+ 中,您可以通过引用预定义变量来获取脚本的路径(不带名称)$PSScriptRoot
)
要获取脚本的名称:
$scriptName = split-path -leaf $MyInvocation.MyCommand.Definition
write-host $scriptName
有关 Split-Path 选项的更多信息:https://technet.microsoft.com/en-us/library/hh849809.aspx
答案2
我认为你正在寻找这样的东西
$ScriptPath = Split-Path $MyInvocation.MyCommand.Path
然后我认为-Parent
会给你 PWD,但你可能不需要它。