【问题标题】:Excel file name changed dynamicallyExcel 文件名动态更改
【发布时间】:2014-05-22 12:08:26
【问题描述】:

我使用了一个 Excel 模板。在我的 ssis 包中,首先将模板复制到工作目录中并执行包。在下一次运行中,工作目录中已经存在的 excel 文件移动到 BACKUP 文件夹中,并再次复制了模板文件。效果很好。

但是当我移动它时我想做一些事情我想重命名它就像以前的文件名是 Input_01 在下一步它会 input_02。我怎样才能做到这一点? 我正在使用 SSIS 包中的执行流程任务工具箱。

并调用一个 .bat 文件。在我写的 .bat 文件中

         move "E:\InputFolder\Input.xls" "D:\Backup"

         copy "E:\Template\Input.xls" "E:\InputFolder\Input.xls"

我想在备份文件夹中输出 excel 文件的样子

Input_01,Input_02.... 我的命令是什么?

【问题讨论】:

  • 如果在移动命令中添加文件名会怎样?
  • 如果我添加了一个像 D:\Backup\input_01 这样的文件名,那么 alltym 它会将输入文件移动到名为 input_01.xls 的备份文件夹,但我希望在下次运行时它会自动转换 input_02 .
  • 您是否愿意在名称中附加一个日期,例如 input_20140521 而不是 01, 02 ?我问这个是因为我们无法猜测哪个不是。该文件是除非您遍历备份文件夹中已有的文件或将您当前的编号(01、02、03 等)存储在数据库中。
  • 最好不要使用 bat 文件,而是在 SSIS 中使用文件系统任务,并在变量中传递文件名。

标签: sql excel ssis command


【解决方案1】:

以下是使用批处理文件的方法:

@echo off
set cnt=1
for /f %%f in ('dir /b "D:\Backup\Input_*.xls"') do set /a cnt+=1
if %cnt% lss 10 (move "E:\InputFolder\Input.xls" "D:\Backup\Input_0%cnt%.xls") else (move "E:\InputFolder\Input.xls" "D:\Backup\Input_%cnt%.xls")
copy "E:\Template\Input.xls" "E:\InputFolder\Input.xls"

不过,如果您使用脚本任务,您可以更好地控制文件的命名约定(更不用说删除旧文件)。

【讨论】:

    【解决方案2】:

    我们可以改用“文件系统任务”吗?它可以帮助我们重命名文件。您还必须使用“For-Each 循环容器”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-22
      • 2013-04-29
      • 2020-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-11
      • 2020-07-19
      相关资源
      最近更新 更多