[英]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.