在软件开发的漫长历程中,自动化技术一直是提高工作效率、减少重复劳动的关键。本文将介绍如何通过编写批处理脚本和使用一些实用工具来优化开发流程。
从早期的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脚本通过环境变量返回结果,这是批处理文件中返回函数结果的唯一方式。
@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.
)