Удалить элемент varibale для пути из CSV - PullRequest
0 голосов
/ 19 апреля 2020

Я должен удалить папки на основе списка Excel, поэтому я попытался импортировать execl с помощью импорта CSV, но это не работает. Импорт не заполняет переменную в правильном формате. Это код, который я пытался использовать:

$folders = import-csv G:\Book1.csv foreach ($folder in $folders) {Remove-Item -Path $folder -Recurse -Force}

Ошибка заключается в следующем: Remove-Item: Не удается найти диск. Диск с именем '@ {Foldername = G' не существует. В строке: 4 символа: 5 + Remove-Item -Path $ folder -Recurse -Force + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (@ {Foldername = G: String) [Remove-Item], DriveNotFoundException + FullyQualifiedErrorId: DriveNotFound, Microsoft.PowerShell.Commands.RemoveItemCommand

Remove-Item: не удается найти диск. Диск с именем '@ {Foldername = G' не существует. В строке: 4 символа: 5 + Remove-Item -Path $ folder -Recurse -Force + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (@ {Foldername = G: String) [Remove-Item], DriveNotFoundException + FullyQualifiedErrorId: DriveNotFound, Microsoft.PowerShell.Commands.RemoveItemCommand

Remove-Item: не удается найти диск. Диск с именем '@ {Foldername = G' не существует. В строке: 4 символа: 5 + Remove-Item -Path $ folder -Recurse -Force + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (@ {Foldername = G: String) [Remove-Item], DriveNotFoundException + FullyQualifiedErrorId: DriveNotFound, Microsoft.PowerShell.Commands.RemoveItemCommand

В CSV в заголовках 1.Line в качестве заголовков в строке 2-4 указываются названия папок (a, b, c). Это CSV:

Folderame
G: \ Test \ a
G: \ Test \ b
G: \ Test \ c

Каталог G: \ Test \ a, b, c

1 Ответ

0 голосов
/ 20 апреля 2020

Я нашел решение, файл CSV был проблемой и импорт, поэтому мне пришлось изменить файл CSV: "Foldername"
"G: \ Test \ a"
"G: \ Test \ b "
" G: \ Test \ c "

код powershell теперь такой:

$folders = import-csv .csv | ForEach-Object {

    write-host $($_.Foldername)
    Remove-Item -Path $($_.Foldername) -Recurse -Force     
 }
...