2016-05-20 1 views
0

あるフォルダから新しく作成したフォルダにファイルを移動しようとしています。ホストに書き込むと、ファイル名とフォルダ名は正しくなりますが、ファイルは移動しません。ここで私は問題を抱えているコードの一部です。明らかに、これはファイルを移動しませんが、私は文字列をエスケープしようとするほとんどのバリエーションを試しました。変数を使用してファイルを別のフォルダに移動する方法...エスケープ文字列

$fileToMove= "$($path)\$($Event.SourceEventArgs.Name)" 
Write-Host "File to move: $($fileToMove)" 
$folder = New-Item -ItemType Directory -Path "$(split-path $Event.SourceEventArgs.FullPath)\$((Get-Date).ToString('yyyy'))\$((Get-Date).ToString('MMM yyyy'))\$((Get-Date).ToString('MMM d yyyy'))" 
Write-Host "Folder name:$($folder)" 
Move-Item '$($path)' '$($folder)' 

答えて

0

私はそれが以下のコードでの作業を取得することができました:

$folder = New-Item -ItemType Directory -Path "$($dPath)\$((Get-Date).ToString('yyyy'))\$((Get-Date).ToString('MMM yyyy'))\$((Get-Date).ToString('MMM d yyyy'))" 
Write-Host "$dpath\$((Get-Date).ToString('yyyy'))\$((Get-Date).ToString('MMM yyyy'))\$((Get-Date).ToString('MMM d yyyy'))" 

Move-Item "$($Event.SourceEventArgs.FullPath)" "$($dPath)\$((Get-Date).ToString('yyyy'))\$((Get-Date).ToString('MMM yyyy'))\$((Get-Date).ToString('MMM d yyyy'))" 
0

OK - 間違った点がいくつかあります。

1 - あなたは変数の展開を防ぐ「を移動項目」をライン上の単一引用符を使用しています。

2 - 'move-item'コマンドで '$ filetomove'ではなく '$ path'を参照しています。

3 - 'move-item'行の '$ folder'を参照してください。 '$ folder'はパスではなくオブジェクトを指します。 PowerShellはこれを舞台裏でうまく処理しているかもしれませんが、意識する価値があります。私は、フォルダのフルネームを渡すように行を修正しました。

不要な不要な$()も削除しました。

$fileToMove= "$path\$($Event.SourceEventArgs.Name)" 
Write-Host "File to move: $fileToMove" 
$folder = New-Item -ItemType Directory -Path "$(split-path $Event.SourceEventArgs.FullPath)\$((Get-Date).ToString('yyyy'))\$((Get-Date).ToString('MMM yyyy'))\$((Get-Date).ToString('MMM d yyyy'))" 
Write-Host "Folder name: $folder" 
Move-Item "$fileToMove" "$($folder.FullName)" 

実際、引用符をまったく使用する必要はありません。 Move-Itemは内部コマンドであり、PowerShellは空白を含むパラメータ内の値をすべて送信します。したがって、以下も有効です。

move-item $fileToMove $folder 
+0

はまだファイル – SikRikDaRula

+0

を移動しません、あなたは$ Event.SourceEventArgsプロパティのいくつかのサンプル値を表示することができますか?私はこのコードをテストしましたが、私はそれらを複製することができないので、これらのプロパティの値を代わりにしなければなりませんでした。私のテストでは、パスが作成され、ファイルが移動されました。 – andyb

+0

このコードを呼び出すためにFileSystemWatcherを使用していると思いますか?もしそうなら、あなたはOnCreatedイベントの直後に電話をしていますか? – andyb

関連する問題