运行 所在文件夹中的 PowerShell 脚本

Run PowerShell script in folder that it lives in

我有一个问题,我认为比较容易回答。我有一个脚本可以将空白文件扩展名更改为 PDF。这是:

$directory = 'C:\Test\Files'

Get-ChildItem -File $directory | Where-Object { -Not $_.Extension } | Foreach-Object {
  $_ | Rename-Item -NewName "$($_.Name).pdf"
}

它工作得很好,但我只需要它位于 directory/folder 中的 运行。例如,如果我将它放在我的文档文件夹中,它只会 运行 在我的文档文件夹中,不要对任何其他文件夹进行任何更改,包括文档文件夹中的子文件夹。这可能吗,它会是什么样子?谢谢!

使用 $myinvocation 自动变量

$invoke = $myinvocation.mycommand.path
$directory = Split-Path $invoke
Get-ChildItem -File $directory | Where-Object { -Not $_.Extension } | Foreach-Object {$_ | Rename-Item -NewName "$($_.Name).pdf"
}

在 PowerShell v3 或更高版本上使用

$directory = $PSScriptRoot

旧版本使用

$directory = Split-Path -Parent $MyInvocation.MyCommand.Path