我有一个问题,我认为这个问题相对容易回答。我有一个脚本,它将空白文件扩展名更改为PDF。在这里:
$directory = 'C:\Test\Files'
Get-ChildItem -File $directory | Where-Object { -Not $_.Extension } | Foreach-Object {
$_ | Rename-Item -NewName "$($_.Name).pdf"
}
它工作得很好,但是我只需要在它所在的目录/文件夹中运行即可。例如,如果我将它放在我的documents文件夹中,它将只在我的documents文件夹中运行,而不会对其进行任何更改其他任何文件夹,包括documents文件夹中的子文件夹。这有可能吗,会是什么样?谢谢!
答案 0 :(得分:1)
在PowerShell v3或更高版本上使用
$directory = $PSScriptRoot
在旧版本上使用
$directory = Split-Path -Parent $MyInvocation.MyCommand.Path
答案 1 :(得分:0)
使用$ myinvocation自动变量
$invoke = $myinvocation.mycommand.path
$directory = Split-Path $invoke
Get-ChildItem -File $directory | Where-Object { -Not $_.Extension } | Foreach-Object {$_ | Rename-Item -NewName "$($_.Name).pdf"
}