我有一个安装几个程序的脚本。
我想编写一系列批处理脚本来记录这些安装。
我希望找到一个命令,允许我选择这个文本文件并在每次运行时向该文件写入一行。
- flash 安装
- 批处理文件运行并将文本“flash 已安装”记录到
c:\log\logfile.txt
- java 安装
- 批处理文件运行并将文本“java已安装”写入
c:\log\logfile.txt
- 等等
这样在日志文件中完成时它有
flash installed
java installed
chrome installed
so on
等等
但是,我发现很多脚本都用于写入特定行或编辑特定字符串的文本。我没有看到任何脚本只用于写入下一个空白行。也许我的方法不对。
答案1
到附加使用 Windows 命令行批处理脚本将一行写入文本文件,您可以使用大于号两次来使用输出重定向>>
。例如
echo "java installed" >> c:\log\logfile.txt
有关的:
- 从终端将标准输出附加到文件?(但 OSX 也适用)
- 使用命令重定向运算符(XP 但大部分仍然适用)
- 从命令提示符重定向错误消息:STDERR/STDOUT
答案2
嘿,我实际上现在正在寻找其他问题的答案,偶然发现了这个,所以我只是想发布我在上一份工作中编写的脚本
@echo off echo Flash 检查
设置 KEY_NAMEFP=HklM\Software\macromedia\Flashplayer
设置 VALUE_NAMEFP=CurrentVersion
对于 /F "usebackq tokens=3" %%A IN ( reg query "%KEY_NAMEFP%" /v "%VALUE_NAMEFP%" 2^>nul ^| find "%VALUE_NAMEFP%"
) do ( set A=%%A )
回显 Flash %A%
echo Flash %A%>>%计算机名称%.log
echo IE 检查
设置 KEY_NAMEIE=HklM\Software\microsoft\internet explorer 设置 VALUE_NAMEIE=svcVersion for /F "usebackq tokens=3" %%B IN ( reg query "%KEY_NAMEIE%" /v "%VALUE_NAMEIE%" 2^>nul ^| find "%VALUE_NAMEIE%"
) do ( 设置 B=%%B )
echo IE 版本 %B%
echo IE 版本 %B%>>%computername%.log
echo Java 检查
设置 KEY_NAMEJ=HKLM\SOFTWARE\JavaSoft\Java 运行时环境 设置 VALUE_NAMEJ=CurrentVersion for /F "usebackq tokens=3" %%C IN ( reg query "%KEY_NAMEJ%" /v "%VALUE_NAMEJ%" 2^>nul ^| find "%VALUE_NAMEJ%"
) do ( 设置 C=%%C )
回显 Java 版本 %C%
echo Java 版本 %C% >>%computername%.log
暂停