我有一个变量DATE,其中包含类似06092017的内容 我有一个包含以下行的文件:
#define BUILDDATE (05092017)
括号之间的值改变
我试图用它来查找和替换文字:
type "file.h"|repl "(#define BUILDDATE \().*?(\))" "$1%DATE%$2" >"file_new.h"
但file_new.h
中没有任何变化。
我做错了什么?或者有更好的方法吗?
答案 0 :(得分:0)
为什么要使用外部脚本?
@echo off
REM Prepare example to make batch file self-contained (this will overwrite file.h!)
echo.#define whatever > file.h
echo.#define BUILDDATE (05092017) >> file.h
echo.#define something (1234) >> file.h
for /F "usebackq tokens=1,2,*" %%A in (`type "file.h"`) do @if "%%~A"=="#define" if "%%~B"=="BUILDDATE" (
for /F "tokens=1 delims=() " %%X in ("%%~C") do (
echo.%%X > "file_new.h"
)
)
echo Result:
type "file_new.h"
答案 1 :(得分:0)
谢谢你们。刚注意到在我的file.h中,BUILDDATE和括号之间有一个选项卡,而不是导致它失败的空格。