2017-11-17 14 views
0

このパスには、このパスのディレクトリがあります。\ nasname \ Software \ Build1.0 \ このディレクトリには、ソフトウェアコンポーネントがあります。毎日名前が変わるディレクトリからファイルをコピーする

ディレクトリの名前は毎日変更されます。たとえば、現在は6.95a build xxxxです。私はスクリプトの実行中にディレクトリの内容をテストセットにコピーしたい。

Copy-Item \\nasname\Software\Build1.0\file1.exe \\pc1\DATA\destinationfolder 
Copy-Item \\nasname\Software\Build1.0\file2.exe \\pc1\DATA\destinationfolder 
Copy-Item \\nasname\Software\Build1.0\file3.exe \\pc1\DATA\destinationfolder 
Copy-Item \\nasname\Software\Build1.0\file4.exe \\pc1\DATA\destinationfolder 

Build1.0部分が大きく変化するので、私は、そのビットのワイルドカード化がしたい:それは同じ名前の日常を持っているならば、それは次のようになります。 の場合\\nasname\Softwareは2つのディレクトリ、build1.0およびOldです。

\\nasname\software\***\file1.exeなどですが、OLDディレクトリを選択しないでください。

not "old"というディレクトリを選択するか、-notin "old"というファイルのみをコピーするようにしてみましたが、うまく動作しないようです。

答えて

1

あなたがそうのようなパスにワイルドカードを使用することができます。

Copy-Item \\nasname\Software\Build*\file1.exe \\pc1\DATA\destinationfolder 
Copy-Item \\nasname\Software\Build*\file2.exe \\pc1\DATA\destinationfolder 
Copy-Item \\nasname\Software\Build*\file3.exe \\pc1\DATA\destinationfolder 
Copy-Item \\nasname\Software\Build*\file4.exe \\pc1\DATA\destinationfolder 

それとも、あなたも、ファイル名をワイルドカードと1つのライナーを使用することができますコピーするだけで、4つのファイルがある場合:

Copy-Item \\nasname\Software\Build*\file*.exe \\pc1\DATA\destinationfolder 
は、
+1

これは実際にはとても簡単でした。私はワイルドカードを試しましたが、あなたが単語+ワイルドカードを知ることはできませんでした..問題は解決しました!本当にありがとう。 –

+0

私はあなたが私の答えに満足しているなら、私が助けることができたことをうれしく思います。[受け入れているとマークする](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。 –

1

ビルドプロセスによってディレクトリが作成されている場合は、ディレクトリの最後の書き込みタイムスタンプを利用できます。同様に、

$buildPath = '\\nas\my\build' 
# Get a list of directories, sort descending by write time and pick the first one 
$mostRecentDir = gci $buildPath |? { $_.psIscontainer } | sort -Property LastWriteTime -Descending | select -first 1 

# Get the full path to the most recent directory 
$mostRecentDir.FullName 
+0

ご意見ありがとうございますが、ビルドプロセスでは、現在のビルドも新しいビルドのOLDディレクトリに移動し、すべて同じタイムスタンプになります。私は今それを解決したtho。 –

関連する問題