运行 所在文件夹中的 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
我有一个问题,我认为比较容易回答。我有一个脚本可以将空白文件扩展名更改为 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