我有3000多个子目录,每个子目录都包含一个名为contact2.dbf的dbf文件。
我正在使用一个名为dbview.exe的应用程序,以根据过滤条件运行数据库的导出。我目前所做的是使用excel和Windows中的“复制路径”功能创建一个frankenscript来构建脚本并将输出导出到directoryname.dbf。
现在我想起来了,Kinda太草率了,我可以将它们全部输出到相同的.dbf文件中,但是很好。我正在完善我的流程。
因此,我想做的是使用loop /R
命令指定子目录,因为每天都会添加新的子目录,而我不想继续修改这个庞大的脚本。以下脚本中的目录为T:\TM5\Data\Nix
,T:\TM5\Data\Covenant
等。
也可以将脚本编辑为所有输出到相同的/ EXPORT位置。
"C:\Program Files (x86)\DBF Viewer 2000\dbview.exe" T:\TM5\Data\Nix\contact2.dbf /EXPORT:C:\AUTOMATION\LEADS\Nix.dbf /FILTER:C:\AUTOMATION\LEADS\LEADS.flt /COLUMNS:COM,EMAILADRES,EXTENSION,TL1,CON,TITLE,ADDRESS,ADDRESS2,CITY,STATE,ZIPCODE,MEM,TERMCODE,LCL,EMPLYU9,STATUS,FIRSTNAMU2,LASTNAMU4,SIC,DUNS,DUNSU6,LISTSRC
"C:\Program Files (x86)\DBF Viewer 2000\dbview.exe" T:\TM5\Data\Covenant\contact2.dbf /EXPORT:C:\AUTOMATION\LEADS\Covenant.dbf /FILTER:C:\AUTOMATION\LEADS\LEADS.flt /COLUMNS:COM,EMAILADRES,EXTENSION,TL1,CON,TITLE,ADDRESS,ADDRESS2,CITY,STATE,ZIPCODE,MEM,TERMCODE,LCL,EMPLYU9,STATUS,FIRSTNAMU2,LASTNAMU4,SIC,DUNS,DUNSU6,LISTSRC
"C:\Program Files (x86)\DBF Viewer 2000\dbview.exe" T:\TM5\Data\Fenyx\contact2.dbf /EXPORT:C:\AUTOMATION\LEADS\Fenyx.dbf /FILTER:C:\AUTOMATION\LEADS\LEADS.flt /COLUMNS:COM,EMAILADRES,EXTENSION,TL1,CON,TITLE,ADDRESS,ADDRESS2,CITY,STATE,ZIPCODE,MEM,TERMCODE,LCL,EMPLYU9,STATUS,FIRSTNAMU2,LASTNAMU4,SIC,DUNS,DUNSU6,LISTSRC
"C:\Program Files (x86)\DBF Viewer 2000\dbview.exe" T:\TM5\Data\FarmSC\contact2.dbf /EXPORT:C:\AUTOMATION\LEADS\FarmSC.dbf /FILTER:C:\AUTOMATION\LEADS\LEADS.flt /COLUMNS:COM,EMAILADRES,EXTENSION,TL1,CON,TITLE,ADDRESS,ADDRESS2,CITY,STATE,ZIPCODE,MEM,TERMCODE,LCL,EMPLYU9,STATUS,FIRSTNAMU2,LASTNAMU4,SIC,DUNS,DUNSU6,LISTSRC
"C:\Program Files (x86)\DBF Viewer 2000\dbview.exe" T:\TM5\Data\CMTCsola\contact2.dbf /EXPORT:C:\AUTOMATION\LEADS\CMTCsola.dbf /FILTER:C:\AUTOMATION\LEADS\LEADS.flt /COLUMNS:COM,EMAILADRES,EXTENSION,TL1,CON,TITLE,ADDRESS,ADDRESS2,CITY,STATE,ZIPCODE,MEM,TERMCODE,LCL,EMPLYU9,STATUS,FIRSTNAMU2,LASTNAMU4,SIC,DUNS,DUNSU6,LISTSRC
"C:\Program Files (x86)\DBF Viewer 2000\dbview.exe" T:\TM5\Data\OneDigMV\contact2.dbf /EXPORT:C:\AUTOMATION\LEADS\OneDigMV.dbf /FILTER:C:\AUTOMATION\LEADS\LEADS.flt /COLUMNS:COM,EMAILADRES,EXTENSION,TL1,CON,TITLE,ADDRESS,ADDRESS2,CITY,STATE,ZIPCODE,MEM,TERMCODE,LCL,EMPLYU9,STATUS,FIRSTNAMU2,LASTNAMU4,SIC,DUNS,DUNSU6,LISTSRC
答案 0 :(得分:0)
我相信您正在寻找的是
for /d %%w in ("T:\TM5\Data\*") do "C:\Program Files (x86)\DBF Viewer 2000\dbview.exe" "%%w\contact2.dbf" /EXPORT:C:\AUTOMATION\LEADS\Nix.dbf /FILTER:C:\AUTOMATION\LEADS\LEADS.flt /COLUMNS:COM,EMAILADRES,EXTENSION,TL1,CON,TITLE,ADDRESS,ADDRESS2,CITY,STATE,ZIPCODE,MEM,TERMCODE,LCL,EMPLYU9,STATUS,FIRSTNAMU2,LASTNAMU4,SIC,DUNS,DUNSU6,LISTSRC
其中%%w
应该获取T:\TM5\Data
的每个子目录的全名,但只能获取该目录的全名,即。低于一级,非递归。
答案 1 :(得分:0)
正确答案归Compo所有。我试图做的是使用名为dbview的应用程序动态地从数千个.dbf文件中提取数据,每个文件位于不同的目录中。
我使用Compo的脚本提取数据:
@对于/ D %% A In(“ T:\ TM5 \ Data *”)执行@“%ProgramFiles(x86)%\ DBF Viewer 2000 \ dbview.exe“” %% A \ contact2.dbf“ /导出:“ C:\ AUTOMATION \ LEADS \ %%〜nxA.dbf” /FILTER:C:\AUTOMATION\LEADS\LEADS.flt /栏:COM,电子邮件地址,扩展,TL1,CON,标题,地址,地址2,城市,州,邮政编码,MEM,TERMCODE,LCL,EMPLYU9,STATUS,FIRSTNAMU2,LASTNAMU4,SIC,DUNS,DUNSU6,LISTSRC 2> NUL
然后将其全部放入另一个数据库:
对于(“ C:\ AUTOMATION \ LEADS \ LITTLE * .DBF”)中的%% I,请执行“ C:\ Program Files (x86)\ DBF查看器 2000 \ dbview.exe“ /APPEND:Q:\TM5\Data\dleads\CONTACT2.DBF,%% I
路径可能有所不同,因为我在不同的目录中尝试了不同的事情,但是语法应该可以工作,并且如果有人遇到类似的情况,可以对其进行调整以适应这种情况。