2014-07-10 100 views
0

我想在删除一些文件:PowerShell中删除,项目不能删除填充文件夹

C:\的Inetpub \ wwwroot的\ my_site \

my_site,有许多文件和文件夹,包括bin文件夹中其中有一些.dll文件。只要我运行该脚本,就会收到一条错误消息,指出某些.dll文件无法访问,因为它们正在被另一个进程使用,并且在某些dll中,我得到了拒绝权限的错误。

我不知道是什么问题。我正在使用以下脚本,该脚本适用于任何其他文件夹,但不适用于我尝试删除的文件夹。

get-childitem "c:\inetpub\wwwroot\my_site\" -recurse | % { 

remove-item $_.FullName -recurse -force 

} 
+3

你得到一个合法的错误消息的脚本...也许这将有助于(http://stackoverflow.com/questions/225802/how-to - 确定 - 这 - 处理 - 是保持-A-文件在窗口)。 – ash

+0

奇怪的是,如果我进入该文件夹并选择所有并删除它们,它会删除一切,但使用脚本我得到的错误我不知道为什么 – user3770612

+0

是你的脚本my_site? – ash

回答

0

运行PowerShell中以管理员身份

的C:\的Inetpub目录有需要您以使该文件夹内的任何变化运行它以管理员身份特殊权限。

+0

我以管理员身份运行PowerShell。但仍然没有运气。奇怪的是,如果我从PowerShell窗口发出正常的remove -item命令,它会删除管理内容,但是如果我在脚本中写入,它会给我提供错误消息 – user3770612

0

这是我使用

$content = get-childitem 'C:\Backups\my_site'  
    $sortedContent = $content | Sort-Object LastWriteTime -Descending 


    write-host "This is the list of all the backups for my_site :" 

    $count = 1 
    foreach ($item in $sortedContent) 
    { 

    Write-Host ("{0}: {1}" -f $count, $item.Name) 
    $count++ 
    } 



    # 2.Take input from user 
    $itemNumber = Read-Host "Please select which backup you want to restore" 
    $confirmation = Read-Host "Are you Sure You Want To Proceed:" 
    # 2.Take input from user 

    if ($confirmation -eq 'y') { 

    # 3. BACKUP script 
    ./bacup_mysite.ps1 
    # 3. BACKUP 

    # 4. DELETE CONTENTS OF my_site 


    get-childitem "C:\inetpub\wwwroot\my_site\" -recurse | % { 

    remove-item $_.FullName -recurse -force 

    } 

    } 


    # 4. DELETE CONTENTS OF APP 

    # 5. COPY CONTENTS OF ZIP INTO APP DIRECTORY 
    $itemNumber = $itemNumber -1 
    if($sortedContent[$itemNumber].PSIsContainer -eq $true) 
    { 
    $src = $sortedContent[$itemNumber].FullName + "\" 


    $WebzipPath = $src + "my_site.zip" 


    $Date = Get-Date 
    $folder_date = $Date.ToString("yyyy-MM-dd_HHmm") 
    $tempPath = 'C:\_Temp\Restore\my_site_restore_' + $folder_date 
    if (!(Test-Path -path $tempPath)) 
    { 
     New-Item $tempPath -type directory 
    } 


    ./Library/unzip.ps1 $WebzipPath $tempPath 



    $tempPathWeb = $tempPath + "/my_site/*" 

    Copy-Item -Path $tempPat -Destination 'C:\inetpub\wwwroot\my_site\' -Recurse - 
    force