使用Powershell根据表重命名电子表格的文件名

时间:2019-08-29 13:29:04

标签: excel powershell file-rename batch-rename cmdlet

是否有一种方法可以根据其中包含的内容并使用数据表来重命名Excel文档。更具体地说,我收到了50多个文件(每个文件都有一个通用的随机名称),我必须在订单号后对其进行重命名。我必须手动打开文件以获得订单号,然后将文件重命名为这样。

是否存在可以在Powershell中运行的脚本或任何其他可以帮助自动重命名过程的工具?我有一个数据表,其中包含该文件夹中包含的一批订单号。我以为是一个脚本,该脚本将引用该表,然后在电子表格中查找以根据其中的订单号重命名该文件。我只是不知道是否有可能,或者怎么写。

1 个答案:

答案 0 :(得分:1)

该脚本可能是一个很好的起点。

  1. 首先枚举某个路径(在这种情况下为c:\ temp)中的所有xlsx文件。

  2. 打开Excel文件,在此处转到预定义的工作表("Sheet2"),并从Cell(1,1)“ A1”中读取值。

  3. 确保关闭工作簿和excel应用。
  4. 使用Rename-Item重命名文件。

        foreach ($f in Get-ChildItem "C:\temp\" -Filter *.xlsx){
    
            $FilePath = $files[$i].FullName
            $Excel = New-Object -ComObject Excel.Application
            $wb = $Excel.Workbooks.Open($FilePath)
    
            $ws = $wb.Sheets.item("Sheet2")
    
            $val = $ws.Cells.item(1,1).Value2
    
            $wb.Close()
            $Excel.Quit();
    
            Rename-Item -Path $FilePath -NewName $val'.xlsx'
        }