Visual Studio(本文适应VS2013,其他版本的VS亦可)。
用记事本写批处理,在调试时往往是先保存文件,然后双击批处理文件,这不是很方便。为了解决这个问题,我们的第一个批处理开发环境就诞生了。软件要求:启动软件后即可编写代码,按F5或点击菜单运行。
打开VS,新建C# WinForm项目,命名为“批处理开发环境”,如图:
窗体设计,如下:
在主窗体中添加代码,如下: public partial class MainForm : Form { private string cFilePath; public MainForm() { InitializeComponent(); } private void 运行ToolStripMenuItem_Click(object sender, EventArgs e) { Run(cFilePath); } private void MainForm_Load(object sender, EventArgs e) { //构造文件路径:当前目录中的Project子目录中的Test.bat文件 string dirPath = Environment.CurrentDirectory; string proPath = Path.Combine(dirPath, 'Project'); Directory.CreateDirectory(proPath); cFilePath = Path.Combine(proPath, 'test.bat'); } //运行批处理 private void Run(string path) { try { string content = EditBox.Text; if (content == '') { return; } File.WriteAllText(path, content ); System.Diagnostics.Process.Start(path); } catch (Exception) { MessageBox.Show('悲剧,哪里出错了...再试一试吧!'); } } private void EditBox_KeyDown(object sender, KeyEventArgs e) { var k = e.KeyCode; switch (k) { case Keys.F5 : Run(cFilePath); break; default : break; } } }
调试运行,并在TextBox中添加如下代码:@echo offtitle Batch Editor-by killfecho Hello Wrold!!!pause然后,按F5或点击菜单,运行脚本,效果如下:
echo命令。功能:显示消息,或打开关闭回显功能。语法:echo [{on|off}] [message]说明:echo 字符串,把字符串显示在屏幕上(命令控制台);echo off,关闭回显,此后将不会显示命令本身,而只显示运行结果;echo on,打开回显,此后将同时显示命令和结果。举例:echo Hello Wrold!!!@echo offecho Hello Wrold!!!@echo onecho Hello Wrold!!!pause运行效果如下图:
@命令。功能:把@放在命令前,表示该命令不回显,即不显示命令本身,只显示命令运行结果。举例:echo Hello Wrold!!!@echo Hello Wrold!!!pause运行效果,如下图:小技巧:批处理往往以@echo off命令开始,使得屏幕看起来更整洁。
Rem命令。功能:注释。举例:@echo offecho Hello Wrold!!!rem echo Hello Wrold!!!pause
Pause命令。功能:暂停执行,等待用于按下任意键。运行 Pause 命令时,将显示下面的消息:Press any key to continue. . .(或:请按任意键继续. . .)举例:@echo offecho Hello Wrold!!!pause运行效果,如下图。小技巧:使用Pause命令往往是为了在屏幕上看到运行结果,如果不用Pause命令,控制台窗口将会不等待用户反应过来就关闭了。
Call命令。功能:从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。举例:创建1.bat文件,并放置在C盘根目录,1.bat中的代码如下:@echo offecho Hello Wrold!!! by-1.batpause 在批处理开发环境中输入代码:@echo offecho Hello Wrold!!!call c:\\1.batpause F5运行查看结果如下图。
Start命令。功能:调用外部程序。举例:创建1.bat文件,并放置在C盘根目录,1.bat中的代码如下:@echo offecho Hello Wrold!!! by-1.batpause 在批处理开发环境中输入代码:@echo offecho Hello Wrold!!!start c:\\1.batpause F5运行查看结果如下图。小技巧:Start和Call的区别在于:Call在当前进程中运行,Start在新的进程中运行,而且Start可以运行一切可执行文件。
是不是觉得我们的批处理开发环境实在是太简单了?不能新建文件、不能保存等等,有人说这根本不算是开发环境,而事实也是如此,但这并不能否认我们在一点点进步。下一篇我们进一步完善我们的软件,介绍批处理更深入的知识。