1

画像 (jpg) をある場所から別の場所に移動する予定のスクリプトを作成しています。問題は、親ディレクトリの名前が可変であるのに対し、終了ディレクトリは固定されていることです。

robocopy がこれを行うなら、私は満足しています: robocopy C:\temp\pcbmodel**\defect c:\test**\defect*. しかし、そうではありません

たとえば、これはほとんど機能します。

foreach ($i in Get-ChildItem C:\temp\pcbmodel\*\*\defect -recurse)
{
if ($i.CreationTime -lt ($(Get-Date).AddMonths(0)))
{
    write $i.FullName
    Copy-Item $i.FullName C:\Test
}
}

問題は、ファイルが c:\test にコピーされているのに、** パスがコピーされていないことです。* 必要なパスは、顧客ごとに変わるためです。

いくつかの提案はいいだろう、バート

4

4 に答える 4

0

親フォルダーもコピーせずに、すべてのサブフォルダーとそのファイルをあるフォルダーから別のフォルダーにコピーしようとしています。

たとえば、C:\testファイルを含むいくつかのサブフォルダーを使用して、コピーせD:\testずににコピーしますD:\test\test\subfolders

于 2015-09-23T17:17:44.827 に答える
0

そのようなものはどうですか:

$step1 = get-childitem  C:\temp\pcbmodel\
$Else = #FILETYPE YOU DO NOT WANT
$step1 | foreach {get-childitem -recurse -exclude "Directories", $ELSE | where {$_.Creationtime -lt ($(get-date).Addmonths(0))} 
                 }

私はそれが正しいことを願っており、これが役立ちます:)

編集: -Excludeおよび-Includeパラメータを使用すると、非常に役立ちます:)

EDIT2: 多くの編集について申し訳ありません - あなたは jpg ファイルを探しているだけです。

$step1 | foreach {get-childitem -recurse -include *.jpg, *.jpeg | where {$_.Creationtime -lt ($(get-date).Addmonths(0))} 
于 2013-07-22T13:49:02.370 に答える