У меня есть несколько файлов с расширением .psa в папке Prevalidation, и я хочу:
- скопируйте их по одному в мою рабочую папку
- переименуйте файл .psa в psaload.csv
- запустить набор команд для файла, чтобы загрузить его в мою базу данных
- и затем удалите файл csv из моей рабочей папки.
Это будет повторяться для всех файлов .psa, которые есть в моей исходной папке.
Итак, вопрос в том, как выполнить набор команд в цикле на столько файлов .psa, сколько имеется.
Вот мой пример тестирования кода только для одного файла в папке Prevalidation -
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>
Это то, что я собираюсь сделать -
Рассмотрим несколько файлов .psa в моей папке C: \ Downloads \ Prevalidation.
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
Я ищу синтаксис для запуска этого набора команд для каждого файла один за другим, который присутствует в папке my / prevalidation.