Я работал над сценарием, который перемещает файлы в каталоге в дочерний каталог, который создается, если столбец «папка» содержит «Y». Файлы, которые не имеют «Y» в соответствующем столбце этой папки, перемещаются в папку с самым предыдущим именем файла с Y.
У меня возникли проблемы с командлетом move-item. Это влияет на меня, когда я пытаюсь переименовать элемент в другом скрипте, так что я думаю, что это как-то связано с тем, как я пытаюсь получить доступ к имени файла существующих файлов в папке.
$sourceDir = read-host "Please enter source Dir:"
$csv = import-csv C:\scripts\files\files.csv
$csv | where {$_.folder -eq 'Y'} | % {
$path = $sourceDir + "\" + $_.fileName
if(-not $_.PSIsContainer)
{
md $path
}#end if
}#end for
$move = ".\" + $csv[0].fileName
$csv | % {
if ($_.folder -eq 'Y')
{
$move = ".\" + $_.fileName
mi $_.fileName "$move"
}
mi $_.fileName "$move"
} #end for
Опять ми, похоже, выдает ошибку. Первый цикл for создает папки правильно, а второй падает. Я возился с этим, и я смог заставить его переместить файлы, которые соответствуют.
Извините, это была более старая версия скрипта после того, как у меня возникли проблемы с перемещением.
Move-Item : Cannot find path 'C:\scripts\BB.026.001.001.0017' because it does not exist.
At C:\scripts\Y2.ps1:25 char:7
+ mi <<<< $_.fileName "$move"
Move-Item : Cannot find path 'C:\scripts\BB.026.001.001.0017' because it does not exist.
At C:\scripts\Y2.ps1:27 char:6
+ mi <<<< $_.fileName "$move"
Move-Item : Cannot find path 'C:\scripts\BB.026.001.001.0018' because it does not exist.
At C:\scripts\Y2.ps1:27 char:6
+ mi <<<< $_.fileName "$move
"
Необходимо указать расширение файла и правильный путь
Спасибо,
Craig.