Это происходит потому, что элемент, который вы подаете в Copy-Item является папкой, а не файлов внутри папки.
При выполнении:
Copy-Item -Path c:\temp -Include "*.txt" -Destination C:\temp2
Вы говорите: Копировать элемент, где Путь является папка C: \ Temp. Единственным элементом, который выбран для копирования , является каталог c: \ temp. Тогда мы говорим только: «Включить элементы, которые соответствуют« * .txt ». Поскольку единственный элемент (папка «temp») не соответствует шаблону, мы ничего не делаем.
Чтобы доказать это, давайте изменим Включать фильтр «Темп», и повторно выполнить его:
Copy-Item -Path c:\temp -Include "temp" -Destination C:\temp2
вуаля! в папке назначения у нас есть новая пустая папка: c: \ temp2 \ temp. (Это пусто, потому что единственный вопрос, который мы сказали, это скопировать была папка «Temp», мы не сказать ему, чтобы скопировать что-нибудь еще)
Так что для части 2 При выполнении:
Copy-Item -Path c:\temp\*.txt -Destination C:\temp2
Это работает, потому что вы говорите, с * .txt, итерации по всем элементам в каталоге, которые соответствуют шаблону * .txt, передают эти пути в Copy-Item и копируют в пункт назначения.
Чтобы доказать это, давайте изменим его, и указать, включаемый фильтр:
Copy-Item -Path c:\temp\* -Include "*.txt" -Destination C:\temp2
мы говорим здесь, получить все элементы в папке C: \ Temp (т.е. мы получаем все элементы внутри папка c: \ temp, а не папка c: \ temp), отфильтруйте их, включив только те элементы, которые соответствуют «* .txt», и скопируйте их в пункт назначения.
Это было легко. Thx для наконечника. Счастливого Рождества! –
Добро пожаловать! – HAL9256