我從一個不同的問題的答案中獲得了一些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
非常感謝。想讓它成爲答案,所以我可以將其標記爲已接受的答案。 –