gpt4 book ai didi

powershell - Powershell脚本可在循环中复制和重命名文件

转载 作者:行者123 更新时间:2023-12-02 23:05:37 25 4
gpt4 key购买 nike

我的Prevalidation文件夹中有许多扩展名为.psa的文件,我想:

  • 一张一张地将它们复制到我的工作文件夹
  • 将.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>

    这是我打算做的-

    考虑我的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文件夹中的每个文件逐个运行这些命令集。

    最佳答案

    由于所有其他答案都是非常糟糕的代码,而不是非常惯用的PowerShell,因此,这是我的看法(尽管未经测试):

    # Get all .psa files
    Get-ChildItem C:\Downloads\PreValidation\*.psa |
    ForEach-Object {
    # Load the file's contents, replace commas with spaces
    (Get-Content $_) -replace ',', ' ' |
    # and write it to the correct folder and file name
    Out-File C:\Downloads\WIP\psaload.csv

    # I guess you'd run whatever you're doing against the file here,
    # not after the loop

    Remove-Item C:\Downloads\WIP\psaload.csv
    }

    关于powershell - Powershell脚本可在循环中复制和重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8138914/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com