在做项目的过程中,要实现这样一个目标:每执行一次exe文件就修改一次txt文件里的参数值。
纠结了很久,开始还打算用批处理来做,后来发现了shell语句能执行exe文件
代码如下:
#格式转换,转换成,分隔的txt文件 for(i in 1:9){ mark_text=paste("0.05HER0.2MAF_EDM-1_00",i,sep = "") mydata<- read.table(paste("E:\\qq\\MobileFile\\要跑的4个数据\\0.05HER0.2MAF_EDM-1\\",mark_text,".txt",sep = ""), header=TRUE) write.table(mydata,append = FALSE,file = paste("E:\\三个需要比较的工具\\MACOED\\test_",i,".txt",sep=""), row.names = F,quote = F,sep = ",") } for(i in 10:99){ mark_text=paste("0.05HER0.2MAF_EDM-1_0",i,sep = "") mydata<- read.table(paste("E:\\qq\\MobileFile\\要跑的4个数据\\0.05HER0.2MAF_EDM-1\\",mark_text,".txt",sep = ""), header=TRUE) write.table(mydata,append = FALSE,file = paste("E:\\三个需要比较的工具\\MACOED\\test_",i,".txt",sep=""), row.names = F,quote = F,sep = ",") } mark_text="0.05HER0.2MAF_EDM-1_100" mydata<- read.table(paste("E:\\qq\\MobileFile\\要跑的4个数据\\0.05HER0.2MAF_EDM-1\\",mark_text,".txt",sep = ""), header=TRUE) write.table(mydata,append = FALSE,file = paste("E:\\三个需要比较的工具\\MACOED\\test_",100,".txt",sep=""), row.names = F,quote = F,sep = ",") #-------------------------------------------------------------------------------------------------------------------------------------------------- #自动执行100次,程序每执行一次parameters.txt中的内容 #为了后面计数方便,在C++中屏蔽了最后输出文档(result.txt)中的中间过程 for(i in 1:99){ setwd("E:\\三个需要比较的工具\\MACOED") shell("E:\\三个需要比较的工具\\MACOED\\MACOED.exe") data <- readLines("E:\\三个需要比较的工具\\MACOED\\parameters.txt") data=gsub(paste("test_",i,".txt",sep=""),paste("test_",i+1,".txt",sep=""),data) data=gsub(paste("result_",i,".txt",sep=""),paste("result_",i+1,".txt",sep=""),data) write.table(data,"E:\\三个需要比较的工具\\MACOED\\parameters.txt",row.names=F,col.names=F,quote=F) } shell("E:\\三个需要比较的工具\\MACOED\\MACOED.exe") #------------------------------------------------------------------------------------------------------- #将100个输出文档存到result.txt #忽略前3行 mydata<-read.table("E:\\三个需要比较的工具\\MACOED\\result_1.txt",skip=3) for(i in 2:100){ newdata<-read.table(paste("E:\\三个需要比较的工具\\MACOED\\","result_",i,".txt",sep=""),skip=3) mydata<-rbind(mydata,newdata) } write.table(mydata,"E:\\result4.txt",row.names=F,col.names=F,quote=F)