自动化开发环境的探索与实践

在软件开发的漫长历程中,自动化技术一直是提高工作效率、减少重复劳动的关键。本文将介绍如何通过编写批处理脚本和使用一些实用工具来优化开发流程。

从早期的IBM JCL(作业控制语言)到个人电脑上的批处理文件,再到近年来流行的PowerShell,自动化技术不断演进。尽管PowerShell功能强大,但其陡峭的学习曲线和对商业代码签名证书的依赖,使得它并不适合日常使用。相比之下,Windows NT命令脚本(批处理文件)则更加简单直接,易于编写和测试。

工具集概览

本文附带的工具集中包含九个批处理脚本和程序,它们是在Angular开发中常用的工具。这些工具的功能如下表所示:

文件名 描述
Date2FN.exe 将文件的最后写入时间附加到文件名上。
LSNEWEST.BAT 返回符合通配符规格的最新文件名。
MAKEZIP_DAG.CMD 使用WinZip或PK-Zip创建目录的备份归档。
SaveChromeDeveloperConsoleLog.CMD 运行此脚本以收集Chrome控制台日志。
StartAngularApp.CMD 运行此脚本以启动Angular应用程序。
StartAngularDevWebServer.CMD 启动Angular CLI附带的Web服务器。
WWPause.exe 内部PAUSE命令的健壮替代品。
wwsleep.EXE 类似于sleep.exe,但内存占用更小。

使用代码

大多数Windows NT命令脚本旨在通过桌面快捷方式来使用,利用其工作目录("开始在")属性来设置默认目录,以便解析相对路径引用。

例如,Date2FN.exe、WWPause.exe和wwsleep.EXE是通用实用程序,可以用于各种用途。

代码示例

以下是一个经典的批处理文件示例:

@echo off goto SKIP REM :SKIP echo BOJ %~0, version %~t0 call ShowTime.CMD

这个脚本首先关闭命令回显,然后跳转到SKIP标签,允许在脚本顶部包含注释块和函数(子程序)。

LSNEWEST.BAT 示例

LSNEWEST.BAT脚本通过环境变量返回结果,这是批处理文件中返回函数结果的唯一方式。

@echo off goto SKIP REM :SKIP dir "%LSNEWEST%" /b /od > %TEMP%\LSNEWEST.TMP for /f "tokens=*" %%i in (%TEMP%\LSNEWEST.TMP) do set LSNEWEST=%%i del %TEMP%\LSNEWEST.TMP

这个脚本使用内部dir命令返回按修改日期从旧到新的文件列表,然后更新环境变量LSNEWEST,使其包含最新文件的名称。

调试技巧

在开发过程中,调试是必不可少的。通过设置环境变量,可以在脚本中启用调试消息,以帮助诊断问题。

if "%_SaveChromeDeveloperConsoleLog%" equ "DEBUG" ( echo . echo ------------------------- echo Within fnglob: echo Arg 1 = %1 echo Arg 2 = %2 echo fnpath = !fnpath! echo fnextn = !fnextn! echo fnglob = !fnglob! echo ------------------------- echo. )
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485