在重复使用相同的路径/文件之前,我似乎在使用锁定文件删除已使用的变量时遇到问题。
首先,我声明了我的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锁定......
这有什么解决方案吗?我需要处理文件夹中的文件,然后重命名并将其全部移动到我的脚本执行... :(
答案 0 :(得分:0)
$ datetime未在您发布的代码中定义。
如果您已在其他位置使用$datetime = get-date
等代码进行了定义,那么追加操作将失败,因为$ datetime不是字符串。通过执行$datetime.gettype()
,您会看到它是System.DateTime
对象。在PS中,将对象转换为字符串的两种简单方法是1)对其进行插值:"$datetime$($_.name)"
或2)使用ToString():$datetime.tostring() + $_.name