2

現在、PS を使用して CSV ファイルに基づいてネットワークの場所からファイルをコピーしています。次に、同じデータのバリエーションを使用してファイルの名前を変更しています。これには、2 つの別個のコマンドを実行する必要があります。

これらのコマンドを 1 つに統合するにはどうすればよいですか?

コピー:

import-csv C:\TEST\test.csv | foreach {copy-item -path $_.npath -destination 'C:\TEST\'}

ペースト:

import-csv C:\TEST\test.csv | foreach {rename-item -path $_.lpath -newname $_.newalias}

それぞれの場合の -path トリガーは、個別の変数ヘッダー、ネットワーク ファイルの場所に対応する npath と lpath、および手動で入力されたローカル ファイルの場所を参照することに注意してください。

同じメモで、この変数を定数データに連結するにはどうすればよいですか。ファイル名と別のパスを表す変数fnがある場合、理論的には次のことができますか?

foreach {rename-item -path 'C:\TEST\' + $_.fn

または:

foreach {rename-item -path $_.path + $_.fn
4

1 に答える 1

2

2つのコマンドを追加するだけです

import-csv C:\TEST\test.csv | foreach {copy-item -path $_.npath -destination 'C:\TEST\';rename-item -path $_.lpath -newname $_.newalias  }

2番目の質問には、文字列を追加する方法がたくさんあります

C:(...)WindowsPowerShell>$data = "bob"

C:(...)WindowsPowerShell>echo "this is a $data"

C:(...)WindowsPowerShell>$concat = "hi" + " george"

C:(...)WindowsPowerShell>$concat
hi george

C:(...)WindowsPowerShell>[string]::Format("{0} {1}","string 1","string 2")
string 1 string 2
于 2013-01-16T20:04:25.493 に答える