Проблема с копированием элемента с использованием переменной в качестве имени папки назначения

#powershell #copy-item

#powershell #копировать элемент

Вопрос:

Я застрял с чем-то странным, вы можете мне помочь.

Я делаю следующее:

   $DateStringInput=Read-host

Copy-Item -Path "C:HodzicPowerShellTestordnerQ_SchulungspräsentationenVorlage" -Destination "C:HodzicPowerShellTestordnerQ_Schulungspräsentationen$DateStringInput_KSF_Grundlagen"  -Recurse
  

Это не работает, поскольку в ошибке говорится, что вы не можете перезаписать [папку] с самой собой … ошибка повторяется для каждого файла, содержащегося в пути к копируемому элементу.

Если я теперь поставлю пробел или что-нибудь еще перед «_» в последней части части назначения, это сработает:

…$DateStringInput _KSF_Grundlagen» или $DateStringInput _KSF_Grundlagen»

Вы можете помочь?

Комментарии:

1. Каково полное сообщение об ошибке?

2. Похоже, что папка уже существует. Попробуйте добавить -Force флаг для перезаписи

Ответ №1:

Анализатор PowerShell интерпретирует все $DateStringInput_KSF_Grundlagen как выражение одной переменной.

Заключите имя переменной в {} , чтобы предотвратить это:

 $Destination = "C:HodzicPowerShellTestordnerQ_Schulungspräsentationen${DateStringInput}_KSF_Grundlagen"
Copy-Item -Path "C:HodzicPowerShellTestordnerQ_SchulungspräsentationenVorlage" -Destination $Destination