Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 在InetPub中删除文件时出错_Powershell - Fatal编程技术网

Powershell 在InetPub中删除文件时出错

Powershell 在InetPub中删除文件时出错,powershell,Powershell,大家好,我正在使用以下代码从inetpub删除文件,但我收到一个错误,即某些文件无法删除,因为它们正被另一个进程使用。我正在使用以下代码 if ($confirmation -eq 'y') { get-childitem "C:\inetpub\wwwroot\Russia\Admin" -recurse | % { remove-item $_.FullName -recurse -force } get-childitem "C:\inetpub\wwwroot\Russia\Tab"

大家好,我正在使用以下代码从inetpub删除文件,但我收到一个错误,即某些文件无法删除,因为它们正被另一个进程使用。我正在使用以下代码

if ($confirmation -eq 'y') {
get-childitem "C:\inetpub\wwwroot\Russia\Admin" -recurse | % {

remove-item $_.FullName -recurse -force

}
get-childitem "C:\inetpub\wwwroot\Russia\Tab" -recurse | % {
    if($_.Name -ne 'mediacontent')
    {

        remove-item $_.FullName -recurse -force
    }

}
}
现在使用此修改的代码,但不会删除文件和文件夹

get-childitem "C:\inetpub\wwwroot\Russia\Admin" *.log -recurse | 
sort lastWriteTIme -Descending | Select-Object -Skip 1 | % {


        remove-item $_.FullName -recurse -force
    }


get-childitem "C:\inetpub\wwwroot\Russia\Tab" *.log -recurse | 
sort lastWriteTIme -Descending | Select-Object -Skip 1 | % {
    if($_.Name -ne 'mediacontent')
    {
        remove-item $_.FullName -recurse -force
    }
这是我得到的错误“删除项目:无法删除项目
C:\inetpub\wwwroot\rusia\table\mediacontent\Html5Game:过程 访问文件“C:\inetpub\wwwroot\rusia\table\mediacontent\Html5Game”,因为它正被 过程 在C:\Development\PowerShell Scripts\u Scripts\rusia.V2\u LOCAL\u RestoreFromBackups.ps1:52 char:4 +删除项$\ FullName-recurse-force + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +CategoryInfo:WriteError:(C:\inetpub\wwwr…ntent\Html5Game:DirectoryInfo)[删除项]
+FullyQualifiedErrorId:RemoveFileSystemMioError,Microsoft.PowerShell.Commands.RemoveItemCommand“

根据@arco444的评论,IIS在最新日志上有一个打开的写句柄。尝试此操作,它将跳过最新的日志文件,尽管您的密码可能因
-Recurse
开关而有所不同:

。。。
获取子项“C:\inetpub\wwwroot\rusia\Tab”-排除mediacontent-递归|
排序lastWriteTIme-降序|选择对象-跳过1 |%{
删除项$\ FullName-force-recurse
}

这是固定的,我只是在它删除管理文件夹后启动睡眠,然后它成功删除平板电脑并恢复备份,感谢您的帮助

IIS可能正在使用它们。如果您先停止服务,然后尝试删除文件,会发生什么情况?没有任何服务或任何东西,它们都是虚拟文件夹。我只是将生产服务器文件结构复制到本地计算机上,以使此脚本正常工作,以便稍后在生产中使用它。我所做的只是从生产中复制所有文件夹并将它们粘贴到我的本地intet pub中,但它不起作用通过运行上述脚本,我没有收到任何错误,但同时我的文件夹没有在INETPUB中被删除。是的,脚本将只删除日志文件(
*.log
过滤器)。您可以在不使用过滤器的情况下尝试,并将
-recurse
添加到
删除项
语句中,但正如我所说的,您的millage可能会有所不同。但我想删除文件夹内容,这就是我遇到错误的地方。在上述代码中,我在media content文件夹中遇到错误,但是我想跳过“媒体内容”文件夹及其所有内容,并删除文件夹的其余部分,您能告诉我如何跳过“媒体内容”文件夹吗?您可以根据我编辑的答案使用
-exclude
开关