Как отмечают комментарии, если вы не используете системные разделители по умолчанию, вы должны обязательно их указать.
Я также рекомендую обычно использовать кавычки для вашего csv, чтобы не было проблем со случайным включением записи это включает в себя разделитель в имени.
@"
"taco1.txt";"C:\temp\taco2;.txt"
"@ | ConvertFrom-CSV -Delimiter ';' -Header @('file','destination')
выведет
file destination
---- -----------
taco1.txt C:\temp\taco2;.txt
Кавычки обеспечивают правильную интерпретацию значений. И да ... вы можете назвать файл foobar;test..txt
. Никогда не стоит недооценивать, что могут делать пользователи. 101
Если вы берете команду Get-ChildItem | Select-Object BaseName,Directory | ConvertTo-CSV -NoTypeInformation
и просматриваете вывод, вы должны увидеть ее в кавычках следующим образом.
Источник вашего списка файлов
Последний совет. Большую часть времени я сталкивался с CSV для списков ввода файлов, CSV не был необходим. Рассмотрите возможность захвата файлов, которые вы используете в самом скрипте.
Например, если у вас есть папка и вам нужно отфильтровать список, вы можете легко сделать это на лету в PowerShell, используя Get-ChildItem .
Например:
$Directory = 'C:\temp'
$Destination = $ENV:TEMP
Get-ChildItem -Path $Directory -Filter *.txt -Recurse | Copy-Item -Destination $Destination
Если вам нужно более детальное управление соответствием, рассмотрите возможность использования командлета Where-Object
и выполните что-то вроде этого:
Get-ChildItem -Path $Directory -Filter *.txt -Recurse | Where-Object Name -match '(taco)|(burrito)' | Copy-Item -Destination $Destination
Часто вы обнаружите, что вы можете легко использовать этот тип фильтрации, чтобы исключить CSV и входные файлы из решения.
пример
Используя такие методы, вы сможете получить файлы из 2 каталогов отфильтруйте совпадение и скопируйте все в короткое утверждение, подобное этому:
Get-ChildItem -Path 'C:\temp' -Filter '*.xlsx' -Recurse | Where-Object Name -match 'taco' | Copy-Item -Destination $ENV:TEMP -Verbose
Надеюсь, что у вас появятся другие идеи! Добро пожаловать в стек переполнения. ?