Board logo

标题: [文件操作] 批处理如何实现调用外部命令/程序对多个指定类型/扩展名的文件进行处理 [打印本页]

作者: xuxnq    时间: 2016-8-12 10:05     标题: 批处理如何实现调用外部命令/程序对多个指定类型/扩展名的文件进行处理

本帖最后由 pcl_test 于 2016-8-12 14:20 编辑

外部程序批量执行txt文件中的清单
1.读取指定文件夹<import>中的所有csv文件,生成一个list.txt文件
举例: import文件夹下面有1.csv   2.csv 3.csv 文件,通过批处理生成一个扩展名的list.txt文件
格式为
1.csv
2.csv
3.csv

2.调用外部程序,把txt里面的内容以行为单位,分别作为参数传入到外部程序中
举例:
call IMPORT.EXE 1.csv  (这个为手动填写csv时的效果)我现在希望这个import.exe自动把list.txt中的文件全部执行一次。请问要怎么写?感谢。
作者: xxpinqz    时间: 2016-8-12 10:24

本帖最后由 xxpinqz 于 2016-8-12 14:21 编辑
  1. @echo off
  2. for /f "delims=" %%a in ('dir /b /a-d *.csv 2^>nul') do call IMPORT.EXE "%%a"
复制代码

作者: xuxnq    时间: 2016-8-12 10:45

回复 2# xxpinqz


  可以运行了,但是生成list.txt的时候最后多了一个换行符,可以不生成这个换房符号吗?
作者: pcl_test    时间: 2016-8-12 13:06

回复 1# xuxnq
生成list.txt除了给import.exe调用还有什么用途么
作者: xuxnq    时间: 2016-8-12 13:34

回复 4# pcl_test


    没有了。
作者: xxpinqz    时间: 2016-8-12 14:22

回复 3# xuxnq

改了不生成文件
作者: xuxnq    时间: 2016-8-12 17:00

回复 6# xxpinqz


    好像不生成文件,但是里面还有一个换行符号,因为这个import.exe如果检测到还有一个空白行会报错。 可不可以再帮忙优化下,感谢
作者: xxpinqz    时间: 2016-8-12 18:18

回复 7# xuxnq

如果是换行,那应该是每次执行都会影响吧,不会只最后一次?
如果确定只是换行符,这样试试看。
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f %%i in ('copy/z %~s0 nul')do (
  3.     for /f "delims=" %%a in ('dir /b /a-d *.csv 2^>nul') do (
  4.         set "str=%%a"
  5.         call IMPORT.EXE "!str:%%i=!"
  6.     )
  7. )
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2