Powershell 无法解析Invoke命令参数集-命令在脚本之外工作正常

Powershell 无法解析Invoke命令参数集-命令在脚本之外工作正常,powershell,robocopy,Powershell,Robocopy,我正在使用PowerShell&robocopy从网络共享中归档文件。文件夹可能存在也可能不存在,但如果确实存在,我想将其移动到其他位置。我正在尝试运行一系列CSV文件中预定义的robocopy命令。该文件还包含一个路径,我希望对该路径执行检查(测试路径),以清除不存在的文件夹。然后我可以在以后处理这些问题 它的某些部分似乎工作正常,但invoke命令给了我一个错误: Invoke-Command : Parameter set cannot be resolved using the spec

我正在使用PowerShell&
robocopy
从网络共享中归档文件。文件夹可能存在也可能不存在,但如果确实存在,我想将其移动到其他位置。我正在尝试运行一系列CSV文件中预定义的
robocopy
命令。该文件还包含一个路径,我希望对该路径执行检查(
测试路径
),以清除不存在的文件夹。然后我可以在以后处理这些问题

它的某些部分似乎工作正常,但invoke命令给了我一个错误:

Invoke-Command : Parameter set cannot be resolved using the specified named parameters.
当我用谷歌搜索这个错误时,我必须承认我不理解给出的答案,因为它们与我的情景无关。invoke命令行在它现在所在的if语句中不存在时工作正常

这是我的代码:

$csv = Import-Csv C:\paths.csv 
foreach ($folder in $csv) {
    $path = $folder.LMCLF #full path to be checked 
    $command = $folder.robo #this is the column name in the CSV which contains the robocopy command
    if (Test-path -Path "$path" -pathtype container) { #check whether path exists
        Invoke-command $folder.robo #run the robocopy command from the CSV
    } else {
        echo $path  " Does not exist!"
    }

    if($LASTEXITCODE) { #check for a robocopy exit code & set relevant message 
        If (($LASTEXITCODE -eq 0)) {
            $RoboCopyMessage = "EXITCODE: 0, Succeeded"               
        } elseif (($LASTEXITCODE -gt 0) -and ($LASTEXITCODE -lt 16)) {
            $RoboCopyMessage = "EXITCODE: 1-15, Warning"
        } elseif ($LASTEXITCODE -eq 16) {
            $RoboCopyMessage = "EXITCODE: 16, Error"
        }
    } else {
        $RoboCopyMessage = "Robocopy did not work :("
    }

    Write-Host $RoboCopyMessage " at location: " $folder.LMCLF #some output to the console detailing the robocopy message
    $folder.LMCLF + " |==========| ",  $robocopyMessage | out-file c:\fail.txt -Append      #put the folder & robocopy code into a text file                                            
}

问题在于,当cmdlet
Invoke命令中的参数
-ScriptBlock
需要脚本块时,将字符串传递给该参数

Invoke-Command [-ScriptBlock] <ScriptBlock> [-ArgumentList <Object[]>] 
               [-InputObject <PSObject>] [-NoNewScope] [<CommonParameters>]

问题在于,当cmdlet
Invoke命令中的参数
-ScriptBlock
需要脚本块时,将字符串传递给该参数

Invoke-Command [-ScriptBlock] <ScriptBlock> [-ArgumentList <Object[]>] 
               [-InputObject <PSObject>] [-NoNewScope] [<CommonParameters>]

问题在于,当cmdlet
Invoke命令中的参数
-ScriptBlock
需要脚本块时,将字符串传递给该参数

Invoke-Command [-ScriptBlock] <ScriptBlock> [-ArgumentList <Object[]>] 
               [-InputObject <PSObject>] [-NoNewScope] [<CommonParameters>]

问题在于,当cmdlet
Invoke命令中的参数
-ScriptBlock
需要脚本块时,将字符串传递给该参数

Invoke-Command [-ScriptBlock] <ScriptBlock> [-ArgumentList <Object[]>] 
               [-InputObject <PSObject>] [-NoNewScope] [<CommonParameters>]

如果您的命令是字符串而不是
调用命令

如果您的命令是字符串而不是
调用命令

如果您的命令是字符串而不是
调用命令
如果您的命令是字符串而不是
调用命令
的值是多少
$folder.robo
?值类似于:Robocopy.exe“W:\folder 1\folder 2”“Q:\folder 1\folder 2”/V/S/E/NP/MOVE/R:3/W:5/LOG+:C:\robocopycybatch6.LOG
$folder.robo
的值类似于:Robocopy.exe“W:\folder 1\folder 2”“Q:\folder 1\folder 2”/V/S/E/NP/MOVE/R:3/W:5/LOG+:C:\RobocopyBatch6.LOG
$folder.robo
的值是什么?该值类似于:Robocopy.exe“W:\folder 1\folder 2”“Q:\folder 1\folder 2”/V/S/E/NP/MOVE/R:3/W:5/LOG+:C:\robocycybatch6.LOG
$folder.robo
的值是什么?该值类似于:Robocopy.exe“W:\folder 1\folder 2”“Q:\folder 1\folder 2”/V/S/E/NP/MOVE/R:3/W:5/LOG+:C:\robocycybatch6.LOG谢谢-这有效。我不知道我为什么会这样!谢谢-这起作用了。我不知道我为什么会这样!谢谢-这起作用了。我不知道我为什么会这样!谢谢-这起作用了。我不知道我为什么会这样!