【问题标题】:Powershell issue.. running v2.0 on server, v3.0 on PC...script bugging outPowershell 问题.. 在服务器上运行 v2.0,在 PC 上运行 v3.0 ...脚本出错
【发布时间】:2014-09-12 18:02:11
【问题描述】:

我有以下脚本,我需要在运行 PS 2.0 的服务器上运行...我已经在我的本地计算机 PS 3.0 上对其进行了测试,它运行良好....但是,当我在服务器上运行它时(2008 R2) 我在 ($folder in (Get-ChildItem -Directory $sourceFolder)) 上收到一个错误,说 -Directory 是意外的……但仅在服务器上。

是我的脚本有问题还是其他问题?

Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "Unrestricted"

$sourceFolder = "server1\a\b\c"
$destFolder   = "server2\a\b\c"

New-Item -Path "$destFolder\Log" -ItemType Directory | Out-Null

foreach ($folder in (Get-ChildItem  -Directory $sourceFolder)) {

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

【问题讨论】:

  • 我找不到任何对它的引用,但使用 v2.0,似乎没有 -directory 参数。使用 v4.0 有所以我假设参数已经添加到 v3.0 中。
  • 嗯好的...你知道 -Directory 的 v2.0 替代品是什么吗???
  • 你可以使用this question的答案。

标签: powershell powershell-2.0 powershell-3.0


【解决方案1】:

V2.0 中没有目录参数。回到那些日子(LOL)我们使用 $PSIsContainer

foreach ($folder in (Get-ChildItem $sourceFolder | ? {$_.PSIsContainer})) 

【讨论】:

  • 感谢 Cole9350。我是 powershell 新手,所以我仍在工作,可能会遇到一些此类事情。 :)
【解决方案2】:

powershell 仍然存在问题,而且时间不多了。我最终使用批处理文件来完成比 ps 脚本短一点的工作。如果有人觉得它有用,请认为 id 分享它。 :)

for /f "delims=|" %%s in ('dir /ad/b') do robocopy "\\server\source\%%s\folder1" "\\server2\dest\%%s\folder1" /E /MOVE 

【讨论】:

    猜你喜欢
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多