我从一个不同的问题的答案中获得了一些Powershell代码,并创建了这个脚本,稍微修改它,这样我就可以传入文件名。如何将不合格的文件名传递给Powershell脚本?
$file = [System.io.File]::Open($Args[0], 'Open', 'Read', 'None')
Write-Host "Press any key to continue..."
$null = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
$file.Close()
,如果我有一个不合格的文件在我的主目录时,或在任何目录的完全合格的文件名,运行它(从PowerShell窗口),它工作正常。该脚本是我的路径上的实用程序文件夹中的lockfile.ps1,并且这些调用都按预期工作。
C:\Users\SteveC.AFRICA> . lockfile abc.txt
C:\Users\SteveC.AFRICA> lockfile abc.txt
C:\Users\SteveC.AFRICA> lockfile .\abc.txt
C:\Users\SteveC.AFRICA> lockfile D:\Junk\abc.txt
然而,在当前目录不是我的主目录,我需要即使是在当前目录中的文件完全限定的文件名。所以这个调用工作
D:\Junk> lockfile D:\Junk\abc.txt
但这些不
D:\Junk> lockfile abc.txt
D:\Junk> lockfile .\abc.txt
两个报告以下错误,说明他们希望找到我的家目录中名为不合格的文件。
Exception calling "Open" with "4" argument(s): "Could not find file 'C:\Users\SteveC.AFRICA\abc.txt'."
这是为什么,我需要做什么才能让这样的脚本正确接受不合格的文件名作为参数?
'$ Args [0]' - >'(Convert-Path $ Args [0])' – PetSerAl
非常感谢。想让它成为答案,所以我可以将其标记为已接受的答案。 –