Powershell删除使用的变量

时间:2015-11-22 18:46:13

标签: powershell

在重复使用相同的路径/文件之前,我似乎在使用锁定文件删除已使用的变量时遇到问题。

首先,我声明了我的SQL进程将每一行写入数据库的路径:

$Files = get-childitem $Folder -Include *COMMON* -Recurse;

接下来附加文件然后移动它,但附加文件名失败:

Get-ChildItem –Path $Folder where-object { $_.Name -like "*COMMON*" }| rename-item -newname {$DateTime + $_.Name} 

使用某些内容:

$Files.delete()

在尝试访问路径之前给我

异常调用"删除"用" 0"参数:"进程无法访问该文件,因为它正由另一个进程使用。" 在行:1个字符:1 + $ Files.Delete()

如果我检查文件,它将被Powershell锁定......

这有什么解决方案吗?我需要处理文件夹中的文件,然后重命名并将其全部移动到我的脚本执行... :(

1 个答案:

答案 0 :(得分:0)

$ datetime未在您发布的代码中定义。

如果您已在其他位置使用$datetime = get-date等代码进行了定义,那么追加操作将失败,因为$ datetime不是字符串。通过执行$datetime.gettype(),您会看到它是System.DateTime对象。在PS中,将对象转换为字符串的两种简单方法是1)对其进行插值:"$datetime$($_.name)"或2)使用ToString():$datetime.tostring() + $_.name

相关问题