2014-07-10 126 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