2012-10-31 2 views
1

Мне было предложено сравнить с помощью сценария powershell, чтобы выполнить некоторое базовое копирование файлов, а не использовать XCopy в пакетном файле. Кажется, что он работает примерно примерно столько же времени, но с Powershell родительская папка древовидной структуры не создается в месте назначения, тогда как с XCopy создается родительская папка. Например, сCopy-Item vs XCopy

xcopy D:\Webs\First\*.* D:\Test\Sandbox\ /E 

Папка «Первая» создается со всем содержимым. Принимая во внимание, что с

$SourceFolder = "D:\\Webs\\First\\" 
$TargetFolder = "D:\\Test\\Sandbox\\" 

Copy-Item $SourceFolder $TargetFolder -recurse 

Папка с именем «Первая» не создается, а содержимое копируется в пункт назначения. Если я использую «Webs» в качестве исходной папки, есть другие папки на том же уровне, что и «First», которые также копируются, и это нежелательно.

Как получить родительскую папку «Первая» для копирования в пункт назначения с помощью Копировать-элемент или какую-либо другую команду powershell без ручного создания этой папки внутри скрипта, чтобы получить точные результаты?

Спасибо ...

ответ

3

быстрый способ можно добавить запись в источник родительской папки перед копированием, например,

$TargetFolder = "D:\\Test\\Sandbox\\"+($SourceFolder | Split-Path -leaf) 

вы также можете использовать Measure-Command Cmdlet для таймингов