[英]passing variables to ren command in powershell
有人可以告訴我這種語法有什么問題嗎? 我根本無法使它正常工作:
#there is file called MyLog.log inside'logoutput'
$file='myimage'
$LogsDestFolder='logoutput'
Write-Host "Renaming log for $file.bmp"
ren $LogsDestFolder\MyLog.log $LogsDestFolder\$file.log
一直抱怨我不能在'ren'命令中傳遞變量。 我嘗試用單引號或雙引號引起來,但沒有任何效果。
繼續得到這個:
ren:無法重命名指定的目標,因為它表示路徑或設備名稱。
謝謝!
這里的問題很可能是您將路徑傳遞到了-NewName
參數中。 您的命令當前翻譯為:
Rename-Item -Path $LogsDestFolder\MyLog.log -NewName $LogsDestFolder\$file.log
ren
= Rename-Item
,您可以從Get-Alias ren
看到。 運行此命令時得到的實際錯誤是:
ren:無法重命名,因為指定的目標代表路徑或設備名稱。
如果您查看TechNet的Rename-Item
您將在-NewName
的描述下-NewName
指定項目的新名稱。 僅輸入名稱,而不輸入路徑和名稱。 如果您輸入的路徑與Path參數中指定的路徑不同,則Rename-Item會生成錯誤。
無需為NewName設置路徑,因為您已經使用-Path
。 刪除路徑組件,並保留建議的文件名,如Ryan所示。
Rename-Item -Path "$LogsDestFolder\MyLog.log" -NewName "$file.log"
#or
Ren "$LogsDestFolder\MyLog.log" "$file.log"
將路徑用引號引起來總是一個好主意。 無論如何,您都需要防止解析錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.