我有一系列需要根据propertyID
生成的水晶报告。这些报告需要2个参数(PropertyID
和date
)。我使用水晶报告导出器将这些转换为pdf以通过电子邮件发送出去。
我需要创建一个批处理文件,为每个特定属性运行此转换。我创建了一个包含propertyIDs
列的isql的txt文件。我需要创建一个循环来读取列列表的第一行,然后遍历其余的ID。
这是我第一次使用批处理文件,所以我很感激我能得到任何帮助:)谢谢!
更新: 一直在努力这个。而现在我认为我的参数存在问题。现在,我将开始使用一个参数-PropertyID-直到我能掌握这一点。这是我现在的代码.. 这是我的批处理文件,它将报告转换为pdf:
c:
cd c:\y46\crexport #navigating to proper folder
crexport.exe -U username -P password -S server -D dbname -F "C:\y46\crexport\rs_Ardent_Owner_Stmtsputesting.rpt" -O "C:\y46\crexport\output.pdf" -E pdf -a "curr_month:11/01/2012 00:00:00" -a "pscode:%A"
正如您所看到的,我的两个参数在这里被定义,但是pscode(PropertyID)被设置为A(很可能是因为我无法理解参数如何工作)。但这是我用来调用批处理文件的代码:
FOR %A IN ("C:\y46\crexport\output.txt") DO "C:\y46\crexport\batch.bat" %A
这有效,但它没有向批处理文件发送正确的参数值,所以我不生成任何输出报告。一旦我解决了我的参数问题,也不确定这是否会在每条记录中正确循环。
这是另一个文本文件源示例。只需一列,如下所示。每行都是propertyID。有些是3位数,有些是8位。
010
057
152
197
21210721
21210722
22090461
22090462
22090781
22090782
22093561
22093562
23180051
23180052
23220781
23220782
257
324
350
352
354
355
367
400
401
402
答案 0 :(得分:1)
你几乎就在那里,只需要做一些改变
cd C:\y46\crexport
for /f %%a in (file.txt) do (
crexport.exe -U username -P password -S server -D dbname -F "C:\y46\crexport\rs_Ardent_Owner_Stmtsputesting.rpt" -O "C:\y46\crexport\output.pdf" -E pdf -a "curr_month:11/01/2012 00:00:00" -a "pscode:%%a"
)
我已将%A
更改为%%a
以匹配for
循环(假设这是循环当前正在处理的文件的名称。
简而言之,这个批处理文件将处理目录C:\y46\crexport
中的所有文件,并且每个文件都运行您在问题中指定的crexport
命令。
如果这些不是crexport
的正确参数,请告诉我详情,我会调整它。