Windows:如何在文件中的特定位置附加文本

时间:2014-07-14 06:11:47

标签: windows batch-file

我需要将密码附加到文件中(我将密码存储在另一个文件中)。所以基本上我将循环通过文件并检查字段SYS_PASSWD = 我需要将密码附加到此字段。有没有办法使用dos脚本?我应该使用什么选项?一个例子会有所帮助。 感谢

1 个答案:

答案 0 :(得分:1)

@ECHO OFF
SETLOCAL
:: Get password from file "q24730439.txt"
FOR /f "delims=" %%a IN (q24730439.txt) DO SET "syspasswd=%%a"

:: insert password into appropriate place in "24730439q.txt"
:: creating newfile.txt
(
FOR /f "delims=" %%a IN (24730439q.txt) DO (
  IF "%%a"=="SYS_PASSWD=" (ECHO %%a%syspasswd%) ELSE (ECHO %%a)
)
)>newfile.txt

GOTO :EOF

此过程会将q24730439.txt中的密码附加到SYS_PASSWD=中的24730439q.txt行,生成newfile.txt


"delims="通过将分隔符设置为空来关闭分隔符。因此,整行被分配给元变量%%a

您只是说have password stored in another file - 以所示方式设置变量将从文件q24730439.txt中读取密码。你没有给出如何获取密码的其他说明,我也无法读懂你的想法。

通常的做法是创建新文件,以便可以调试解决方案。以同样的方式,deleterename通常只是echo而不是被执行,因此如果开发人员的系统和OP&#39不会造成任何损害; s系统不同。所有需要做的就是删除echo以激活重命名/删除 - 但在验证将生成正确的指令序列之后,该步骤是最后一步。

在您的情况下,创建新文件允许

fc newfile.txt 24730439q.txt

执行以查看差异。

一旦您确认结果是正确的,那就简单了

move /y newfile.txt 24730439q.txt >nul 2>nul

使用new覆盖旧文件。此命令可以在goto :eof之前插入 - 但只有在验证过程的正确操作之后才会插入。