Prevalidation フォルダに拡張子が .psa のファイルが多数あり、次のことを行いたいと考えています。
- それらを1つずつ作業フォルダーにコピーします
- .psa ファイルの名前を psaload.csv に変更します
- ファイルに対して一連のコマンドを実行して、データベースにロードします
- 次に、csv ファイルを作業フォルダーから削除します。
これは、ソース フォルダーにあるすべての .psa ファイルに対して繰り返されます。
したがって、問題は、存在するすべての .psa ファイルに対して、一連のコマンドをループで実行する方法です。
Prevalidation フォルダー内の 1 つのファイルのみをテストするコードの一部を次に示します。
Copy-Item C:\Downloads\PreValidation\*.psa C:\Downloads\Validation\WIP
Rename-Item 'C:\Downloads\Validation\WIP\abc 1234.psa' 'psaload1.csv'
Get-Content C:\Downloads\Validation\WIP\psaload1.csv | ForEach-Object { $_.replace("\,"," ") } | Set-Content C:\Downloads\Validation\WIP\psaload.csv
Remove-Item C:\Downloads\Validation\WIP\psaload1.csv
<run the psaload.csv to load to my db>
これが私がやろうとしていることです -
C:\Downloads\Prevalidation フォルダーに複数の .psa ファイルがあるとします。
For each C:\Downloads\PreValidation\*.psa
BEGIN LOOP
Copy-Item C:\Downloads\PreValidation\aaaa.psa C:\Downloads\Validation\WIP\aaaa.psa
Rename-Item 'C:\Downloads\Validation\WIP\aaaa.psa' 'psaload1.csv'
Get-Content C:\Downloads\Validation\WIP\psaload1.csv | ForEach-Object { $_.replace("\,"," ") } | Set-Content C:\Downloads\Validation\WIP\psaload.csv
Remove-Item C:\Downloads\Validation\WIP\psaload1.csv
END LOOP
/prevalidation フォルダーに存在する各ファイルに対してこれらの一連のコマンドを 1 つずつ実行するための構文を探しています。