Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 如何使用接受文本文件参数的循环创建批处理文件?_Loops_Batch File_Text Files - Fatal编程技术网

Loops 如何使用接受文本文件参数的循环创建批处理文件?

Loops 如何使用接受文本文件参数的循环创建批处理文件?,loops,batch-file,text-files,Loops,Batch File,Text Files,我有一系列crystal报告需要基于属性ID生成。这些报告需要两个参数(PropertyID和date)。我使用crystal reports exporter将这些文件转换为pdf格式,然后通过电子邮件发送出去 我需要创建一个批处理文件,为每个特定属性运行此转换。我用isql创建了一个txt文件,其中包含一列propertyId。我需要做一个循环,读取列列表的第一行,然后遍历其余的ID 这是我第一次使用批处理文件,因此我非常感谢您的帮助:)谢谢 更新: 我一直在做这件事。现在我觉得我的参数有问

我有一系列crystal报告需要基于
属性ID
生成。这些报告需要两个参数(
PropertyID
date
)。我使用crystal reports exporter将这些文件转换为pdf格式,然后通过电子邮件发送出去

我需要创建一个批处理文件,为每个特定属性运行此转换。我用isql创建了一个txt文件,其中包含一列
propertyId
。我需要做一个循环,读取列列表的第一行,然后遍历其余的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        

你就快到了,只需要一些改变

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\creexport
中的所有文件,并为每个文件运行您在问题中指定的
creexport
命令


如果这些参数不适用于
creexport
,那么请告诉我详细信息,我会对其进行调整。

您可以发布一个包含要提取位的文本文件示例吗?查看数据的可视化表示会容易得多。010 057 152 197 21210721 21210722 22090461 22090462 22090462 22090781 22090782 22093561 22093562 23180051 23180052 23220781 23220782 257 324 350 352 354 355 367 400 401 402 403 406 410 415 419 421 422 425只是一列属性ID我需要从每一行中获取值并逐个处理。我认为总共有134个行,因此最终我将有134份已转换的报告。@reubenCanowski请将示例文本嵌入问题本身,而不是将特殊文本粘贴到注释中,否则它将丢失正确的格式。例如,我无法确定它是单列还是多列。