无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4984|回复: 15
打印 上一主题 下一主题

[求助] 如何在DOS下调用本地程序循环运行

[复制链接]
跳转到指定楼层
#
发表于 2016-3-29 09:53:12 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
描述:本地C盘(可放在其他盘)有一个程序(MWC)需要调用本地文件处理大量数据,每次程序只能调用一个文件,共计2500多个(在input文件夹,与主程序同目录),运行完的结果放在output文件夹(与主程序同目录,文件夹名与input文件夹名一一对应)。
求助:如何在DOS下调用本地程序循环运行,只至结束。
下面是dos中的调用代码:
Microsoft Windows [版本 10.0.10240]
(c) 2015 Microsoft Corporation. All rights reserved.

C:\Users\ly>cd \

C:\>cd mwc

C:\MWC>mwc -iinput/50136 -ooutput/50136 -s

其中的红色部分为参数,每次都固定的;**部分为文件夹,其中input是每次去取数据,output为运行完后存放数据,也是固定的;蓝色部分(50136)是变量,每次执行共有2500多个,而且input中的这个变量名和output中的变量名要一一对应

谢谢吧友!

15#
发表于 2016-4-21 20:34:04 | 只看该作者
这个可以回,这个真得回!
回复

使用道具 举报

14#
发表于 2016-4-7 10:04:56 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

13#
 楼主| 发表于 2016-4-1 14:31:03 | 只看该作者
yjd 发表于 2016-4-1 10:26
你说的是命令行。不是dos下。
这个要是用程序写,到时很简单。就列下目录循环下就可以了。

谢谢!
回复

使用道具 举报

12#
 楼主| 发表于 2016-4-1 10:47:22 | 只看该作者
yfwang0798 发表于 2016-4-1 10:04
命令中没有涉及文件名,for语句单循环就可以,见附件,但没有可执行文件,无法测试效果。

程序能顺利运行  再次感谢!  
回复

使用道具 举报

11#
 楼主| 发表于 2016-4-1 10:37:36 | 只看该作者
yfwang0798 发表于 2016-4-1 10:04
命令中没有涉及文件名,for语句单循环就可以,见附件,但没有可执行文件,无法测试效果。

非常感谢!
回复

使用道具 举报

10#
发表于 2016-4-1 10:26:06 | 只看该作者
本帖最后由 yjd 于 2016-4-1 10:27 编辑

你说的是命令行。不是dos下。
这个要是用程序写,到时很简单。就列下目录循环下就可以了。

  1. rem @echo off
  2. set pt=%~dp0
  3. cd /d %pt%input
  4. for %%i in (*) do c:\1\test.exe %pt%input\%%i %pt%output\%%i
  5. pause
复制代码

上面的参数自己修改下。
for命令介绍:
http://www.cnblogs.com/adforce/p/3282591.html
回复

使用道具 举报

9#
发表于 2016-4-1 10:04:22 | 只看该作者
命令中没有涉及文件名,for语句单循环就可以,见附件,但没有可执行文件,无法测试效果。

batch_for语句循环.zip

455 Bytes, 下载次数: 10, 下载积分: 无忧币 -2

回复

使用道具 举报

8#
 楼主| 发表于 2016-4-1 08:34:59 | 只看该作者
yfwang0798 发表于 2016-3-31 19:59
还是有问题,你说的命令
mwc -iinput/50136 -ooutput/50136 -s

input是大文件夹,在这个文件夹下又有2522个子文件夹(如50136,此处的50136是文件夹名),所有要计算的数据全部放在这些文件夹中。
此处的mwc是本地的程序,它会去到50136中去调用要计算的数据(txt文件)
回复

使用道具 举报

7#
发表于 2016-3-31 19:59:14 | 只看该作者
还是有问题,你说的命令
mwc -iinput/50136 -ooutput/50136 -s

其中,50136是文件夹还是文件名? 由于50136没有扩展名,我理解为是文件夹名字,
,但如果是文件夹名字,为何又使用参数  /,而不是用参数  \。
你又说input文件夹下有子文件夹,如果是这样,命令中又没有要处理文件的名字,所以不知如何下手?
回复

使用道具 举报

6#
 楼主| 发表于 2016-3-31 10:05:06 | 只看该作者
yfwang0798 发表于 2016-3-30 17:30
看了半天,不知是否理解有误,
有input 和 output文件夹名,文件夹数量有多个,名字随机,每个文件夹里面 ...

是的,没错。所有的文件都在input下面的文件夹中。
想循环调用本地的程序WMC执行程序,将计算结果再放到output下与input对应的文件夹中。
回复

使用道具 举报

5#
发表于 2016-3-30 17:30:52 | 只看该作者
本帖最后由 yfwang0798 于 2016-3-31 09:21 编辑

看了半天,不知是否理解有误,
有input 和 output文件夹名,文件夹数量有多个,名字随机,每个文件夹里面又有多个文件需要处理,
解决方法是使用for语句,双层嵌套,
外层获取文件夹名字,内层获取文件名字,并执行命令处理。不知是否是这个意思?
回复

使用道具 举报

4#
发表于 2016-3-30 09:05:27 | 只看该作者
本帖最后由 mengcatcat 于 2016-3-30 09:08 编辑

FOR /d  %x IN(5013?) do ..\MWC "-iaa/%x -m -oaa_out/%x"   
回复

使用道具 举报

3#
 楼主| 发表于 2016-3-29 17:04:23 | 只看该作者
FOR /F  %x IN(50136 50137) do C:/MWC/MWC -iaa/%x -m -oaa_out/%x   
我将input和output文件夹分别换成了aa与aa_out,在aa中建了50136和50137两个文件夹
执行时报错“此时不应有 IN(50136”
请帮忙给看看,谢谢!
回复

使用道具 举报

2#
 楼主| 发表于 2016-3-29 11:57:57 | 只看该作者
没搞定
回复

使用道具 举报

1#
发表于 2016-3-29 10:15:23 | 只看该作者
for 语句可以满足你,自行百度
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-27 22:32

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表