【问题标题】:writing in a file using command from windows command prompt?使用 Windows 命令提示符中的命令写入文件?
【发布时间】:2016-07-08 21:38:42
【问题描述】:
我正在我的 Windows 7 系统上安装产品,我需要在一个文本文件中搜索一行,在组件文件夹中按名称 IRU_install.properties 在那里我必须搜索一行 licenseType=LICR 并且需要在属性文件中找到该行之后附加一行“licenseAccepted=9”。我不想提示用户,因为安装需要通过批处理脚本和静默安装过程。
【问题讨论】:
标签:
batch-file
command-line-interface
【解决方案1】:
您可以使用findstr 命令在文件中查找文本。请参阅下面的示例:
findstr /m "licenseType=LICR" IRU_INSTALL.properties
if %errorlevel%==0 (
echo Line found!
)
这将查找指定文件中指定的字符串。 /m 开关告诉命令仅在匹配时打印文件名。使用findstr /?了解更多信息。
至于附加文本,这在 Batch 中可能非常困难,但可以做到。
见以下代码:
@ECHO OFF
(
FOR /F "tokens=*" %%A IN (IRU_install.properties) DO (
ECHO %%A
IF "%%A" EQU "licenseType=LICR" (
ECHO licenseAccepted=9
)
)
) >output.txt
move /y output.txt IRU_install.properties
它的作用是使用FOR 命令遍历文件中的行,如果当前行等于所需行,则将许可接受行输出到“output.txt”文件。然后将其中的所有文本移动到.properties 文件中。