1

いくつかのディレクトリを検索して、 のすべてのインスタンスを置き換えようとしていますnewfile.swf

$Logfile = "C:\FOLDER\filecopy.log" 
$ServerDir = "\\SERVER\TESTING\DIRECTORY"
$SourceFile = "C:\FOLDER\newfile.swf"
$OldFiles = Get-ChildItem -path $ServerDir -Recurse -Include newfile.swf |
            Sort-Object Name | Format-Table Fullname -Auto

foreach ($O in $OldFiles) {
    if (Test-Path $O) {
        Copy-Item $SourceFile $O -force
    } else {
        Add-Content $logfile "File Copy Failed"
        Add-Content $logfile $error[$error.count-1]
        Add-Content $logfile "==================="
    }
}

エラーを以下に示します。

File Copy Failed System.Management.Automation.ParseException:
Unexpected token 'C:\FOLDER\newfile.swf' in expression or statement.
at System.Management.Automation.Parser.PipelineRule()
at System.Management.Automation.Parser.StatementRule()
at System.Management.Automation.Parser.StatementListRule(Token start)
at System.Management.Automation.Parser.ScriptBlockRule(String name, Boolean requireBrace, Boolean isFilter, ParameterDeclarationNode parameterDeclaration, List`1 functionComments, List`1 parameterComments)
at System.Management.Automation.Parser.ParseScriptBlock(String input, Boolean interactiveInput)
at System.Management.Automation.AutomationEngine.ParseScriptBlock(String script, Boolean interactiveCommand)
at System.Management.Automation.ScriptCommandProcessor..ctor(String script, ExecutionContext context, Boolean isFilter, Boolean useLocalScope, Boolean interactiveCommand, CommandOrigin origin)
at System.Management.Automation.Runspaces.Command.CreateCommandProcessor(ExecutionContext executionContext, CommandFactory commandFactory, Boolean addToHistory)
at System.Management.Automation.Runspaces.LocalPipeline.CreatePipelineProcessor()
at System.Management.Automation.Runspaces.LocalPipeline.InvokeHelper()
at System.Management.Automation.Runspaces.LocalPipeline.InvokeThreadProc()
===================
4

1 に答える 1

3

Format-TableCopy-Item入力として期待されるファイルオブジェクトのリストを生成しません。代わりにこれを試してください:

Get-ChildItem -Path $ServerDir -Recurse -Include newfile.swf | sort Name | % {
  if ( Test-Path -LiteralPath $_.FullName ) {
    Copy-Item $SourceFile $_.FullName -Force
  } else {
    Add-Content $logfile "File Copy Failed"
    Add-Content $logfile $error[$error.count-1]
    Add-Content $logfile "==================="
  }
}
于 2013-03-27T22:27:31.803 に答える