批处理文件之间的相互调用问题

简介:

今天为了帮朋友减轻他的工作量,就帮他写了一个批处理文件。

该批处理文件的功能包含如下:

1.执行批处理文件2.bat时,新建一个文件夹A。该文件夹的文件夹名是根据时间来命名的。

2. 文件夹命名好后,紧跟着就调用批处理文件3.bat,4.bat,5.bat,而且这几个批处理开始的时间,不能相差太多。

3.其中执行3.bat或者4.bat时,也是有要求的。要把3.bat执行的结果B存放到文件夹A中,而且该结果B的命名是根据时分秒来命名的。

为了达到上述的要求,我写的代码如下。同时为了能更清晰的说明问题及实验,我把2.bat的代码贴出来,做一一说明。

2.bat代码内容:

@echo off

md "d:\%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%"

start d:\ceshi\3.bat

start d:\ceshi\4.bat

start d:\ceshi\5.bat

exit

其中md "d:\%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%"是要在D盘新建一个以时间来命名的文件夹,命名的形式为“2011-05-07-12-44”,表明该文件夹是2011年5月17号12点44分新建的。

start d:\ceshi\3.bat是要调用D盘ceshi文件夹下的3.bat文件。说明其实批处理文件之间的调用,还可以使用call,但是该朋友说,这几个批处理文件开始执行的时间不能相差太多,所以就使用start命令了。同时call命令是在调用该行命令执行结束后,才会调用下一行命令。

下面就把3.bat的代码贴出来,如下:

@echo off

set rp=%time:~0,2%-%time:~3,2%

if exist d:\%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2% (ping -n 4 baidu.com >d:\%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%\%rp%.txt)

exit

其中set rp=%time:~0,2%-%time:~3,2%的意思是设置rp为%time:~0,2%-%time:~3,2%,这个是为了,给3.bat执行的结果命名使用的

if exist d:\%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%,这个是判断在D盘是否存在d:\%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%这个文件夹,而%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%这个文件夹是根据时间来命令的,他不会像在此显示的这个样。如果存在这样一个文件夹,那么就执行ping -n 4 baidu.com >d:\%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%\%rp%.txt,并且把执行的结果存放到d:\%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%文件夹下,并且把文件是以%rp%为名称的记事本文件。

执行结果的相关截图如下:

clip_image002clip_image004

相关文章
|
11月前
‘you-get‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
‘you-get‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
270 0
|
3月前
|
Windows
【计算机网络】已解决:“‘ping‘ 不是内部或外部命令,也不是可运行的程序或批处理文件”报错
【计算机网络】已解决:“‘ping‘ 不是内部或外部命令,也不是可运行的程序或批处理文件”报错
282 0
|
5月前
|
存储 编译器 C语言
C与C++之间相互调用的基本方法
C与C++之间相互调用的基本方法
108 1
|
编译器 测试技术 C语言
C与C++之间的相互调用及函数区别
最近项目需要使用google test(以下简称为gtest)作为单元测试框架,但是项目本身过于庞大,main函数无从找起,需要将gtest框架编译成静态库使用。因为项目本身是通过纯c语言编写,而gtest则是一个c++编写的测试框架,其中必然涉及c与c++之间的相互调用。 注意,本文的前提是,c代码采用gcc等c语言编译器编译c代码,采用g++等c++编译器编译c++代码,如果c和c++代码统一使用g++编译,大部分情况是可以实现两者代码相互调用的。以下为踩坑过程的总结o_O||。 c与c++的函数区别 要了解两者之间如何实现相互调用,必须先了解c与c++之间的函数有什么不同。 c+
116 0
|
存储 Unix Linux
Linux设备驱动程序(二)——建立和运行模块
本章介绍所有的关于模块和内核编程的关键概念,通过一个 hello world 模块来认识驱动加载的流程及相关细节。
113 0
|
JSON 小程序 JavaScript
【小程序】宿主环境之通信模型和运行机制
【小程序】宿主环境之通信模型和运行机制
89 0
【小程序】宿主环境之通信模型和运行机制
如何远程比较两个系统里同一个ABAP类方法代码的差异
如何远程比较两个系统里同一个ABAP类方法代码的差异
267 0
如何远程比较两个系统里同一个ABAP类方法代码的差异
|
C++
三个类之间的相互调用实现
由来:在项目开发的时候,定义了三个核心类(ClassA,ClassB, ClassC),三个类之间存在调用关系如下:ClassC是管理类,需要调用ClassA, ClassB的接口;同时作为被管理类,ClassA, ClassB需要又需要调用ClassC的接口。
250 0
三个类之间的相互调用实现
|
IDE 开发工具 C语言
成功解决''g++' 不是内部或外部命令,也不是可运行的程序 或批处理文件
成功解决''g++' 不是内部或外部命令,也不是可运行的程序 或批处理文件