linux下命令行修改文件有很多工具,比如sed,但Windows下就没那么方便,不过for 和move 命令为命令修改文件提供一个途径,虽然不好用,但总比没有强啊。简单的修改还是可以的。原理就是for循环读取文件中的每一行,处理后输出到临时文件,然后用move命令将临时文件改名,覆盖原文件内容。
以下是一个示例,修改一个Java代码,对以public static final NativeLibrary 和public static final AppauthLibrary 开头的行,添加// 注释符
rem 定义变量延迟环境,关闭回显
@setlocal enabledelayedexpansion
rem 读取文件所有内容
for /f "delims=" %%i in (src\main\java\net\facelib\appauth\jna\AppauthLibrary.java) do (
rem 设置变量a为每行内容
set a=%%i
rem 替换内容
set "a=!a:public static final NativeLibrary=//public static final NativeLibrary!"
set "a=!a:public static final AppauthLibrary=//public static final AppauthLibrary!"
rem 把修改后的全部行存入$
echo !a!>>$)
rem 用$的内容替换原来文件内容
move $ src\main\java\net\facelib\appauth\jna\AppauthLibrary.java || EXIT /B
参考文章 《batch script - read line by line》 《bat文件修改文件内容》
|