none
powershell ищет в system32 RRS feed

  • Вопрос

  • Я В ЭТОМ НОВИЧОК!

    Имеется следующий скрипт:

    $arr_d = (-3,-6,-9)

    $arr_c_10=("*cam0*","*cam4*","*cam5*","*cam11*","*cam13*","*cam14*","*cam15*","*cam17*","*cam24*","*cam25*")
    $arr_c_30=("*cam9*","*cam12*")
    $arr_c_60=("*cam7*","*cam8*","*cam1*","*cam18*")

    $arr_c=($arr_c_10,$arr_c_30,$arr_c_60)

    $arr_p = ("C:\other\temp","C:\other\temp","C:\other\temp","C:\other\temp")

    $now = Get-Date
    for($i = 0; $i -lt 3; $i++){
        for($d = 0; $d -lt 2; $d++){
            for($c=0; $c -lt $arr_c[$d].Count-1; $c++){
                $date = $now.AddDays($arr_d[$d])
                $files = Get-ChildItem -Path $arr_p[$i] -recurse -File | Where {($_.LastWriteTime -le "$date") -and ($_.FullName -like  $arr_c[$d][$c]) -and (!$_.PSIsContainer)}
                foreach ($file in $files) {
                    Remove-Item $file
                }
            }
        }
    }


    Выполнение, точнее отладка происходит в PowerShell ISE.

    При удалении файла получаю следующие:

    Remove-Item : Не удается найти путь "C:\Windows\system32\12 — копия (10).txt", так как он не существует.

    C:\other\ps\video-zavod-del-old.ps1:40 знак:17+

    Remove-Item $file+                 ~~~~~~~~~~~~~~~~~    + CategoryInfo          : ObjectNotFound: (C:\Windows\system32\12 — копия (10).txt:String) [Remove-Item], ItemNotFoundException    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand


    Хотя видно что в переменной нужный мне файл и в нужной мне папке, отличной от system32.

    Что это за ... ?

    25 февраля 2015 г. 1:40

Ответы

  • Напишите так:
    foreach ($file in $files) {
        Remove-Item -LiteralPath $file.PSPath
    }
    или так:
    $files|Remove-Item
    • Предложено в качестве ответа Svolotch 27 февраля 2015 г. 11:47
    • Помечено в качестве ответа KazunEditor 27 февраля 2015 г. 12:31
    25 февраля 2015 г. 6:46

Все ответы

  • Напишите так:
    foreach ($file in $files) {
        Remove-Item -LiteralPath $file.PSPath
    }
    или так:
    $files|Remove-Item
    • Предложено в качестве ответа Svolotch 27 февраля 2015 г. 11:47
    • Помечено в качестве ответа KazunEditor 27 февраля 2015 г. 12:31
    25 февраля 2015 г. 6:46
  • попробуйте запустить скрипт от имени администратора или системы, возможно уак блокирует ваши привелегии на системный каталог
    26 февраля 2015 г. 9:45
    Модератор