2014-07-21 89 views
0

嗨不能弄清楚什么错了...我需要这个脚本来创建一个robocopy日志文件夹,然后创建robocopy txt文件。工作正常,但它不会创建\ log文件夹...请帮助吗?powershell文件夹创建和创建robocopy文件

$sourceFolder = "C:\x\y\z" 
$destFolder = "C:\x\y\zz" 
{ 
{ 
New-Item -ItemType Directory -Force -Path "$DestFolder\Log" 
} 
foreach ($folder in (Get-ChildItem -Directory $sourceFolder)) { 
    "robocopy `"$($sourceFolder)\$($folder)\zArchive\Data files to Nov 13`" `"$($destFolder)\$($folder)\folder`" /E /MOVE /DCOPY:T /log+:`"$DestFolder\Log\log.olog`"" | Out-File zArchiveMove.txt -Append 
    "robocopy `"$($sourceFolder)\$($folder)\Data files to Nov 13`"  `"$($destFolder)\$($folder)\folder`" /E /MOVE /DCOPY:T /log+:`"$DestFolder\Log\log.olog`""  | Out-File zArchiveMove2.txt -Append 
} 
} 

回答

0

它为什么用大括号写出它的方式?我不能说我对Powershell有很多了解,但是只是在测试窗口中重复您的代码就会让我联想到它。所以如果我写:

{{new-item -itemtype Directory -Force -Path "$DestFolder\Log"}} 

它会回声。由于意志:

{新项目-itemtype目录-Force -Path “$ DestFolder \登录”}

如果我沟大括号,它的工作原理。 所以我会建议你摆脱大括号,除非他们需要的东西。如果它们在与条件语句相关的代码块内,请在此复制该代码块。

所以:

$sourceFolder = "C:\x\y\z" 
$destFolder = "C:\x\y\zz" 


New-Item -ItemType Directory -Force -Path "$DestFolder\Log" 

foreach ($folder in (Get-ChildItem -Directory $sourceFolder)) { 
"robocopy `"$($sourceFolder)\$($folder)\zArchive\Data files to Nov 13`" `"$($destFolder)\$($folder)\folder`" /E /MOVE /DCOPY:T /log+:`"$DestFolder\Log\log.olog`"" | Out-File zArchiveMove.txt -Append 
"robocopy `"$($sourceFolder)\$($folder)\Data files to Nov 13`"  `"$($destFolder)\$($folder)\folder`" /E /MOVE /DCOPY:T /log+:`"$DestFolder\Log\log.olog`""  | Out-File zArchiveMove2.txt -Append 
} 

应该工作。请测试并回报。也请考虑缩进你的初始代码。我知道Powershell用户不会经常这样做,但是当您嵌套代码块时,它更容易阅读。

相关问题