如何写bat脚本

读取文件

假设我们有一个名为test.txt的文本文件,里面有如下内容:

Hello, World!
This is a test file.

我们可以使用以下Bat脚本来读取文件内容:

@echo off
set filename=test.txt
set /p content=<%filename%
echo %content%

解释一下这段脚本的每一行:

@echo off 关闭命令行窗口中的回显(echo)功能。

set filename=test.txt 设置变量filename的值为test.txt。

set /p content=<%filename% 从文件中读取一行文本,并将其存储到变量content中。

echo %content% 在命令行窗口中输出读取到的文本内容。

执行这段脚本,将会输出以下内容:

Hello, World!

这是因为我们只读取了文件的第一行内容,并将其存储到了变量content中。

写入文件

接下来,我们将使用Bat脚本来向文件中写入一些内容。假设我们要在test.txt文件的末尾添加一行文本,内容为This is a new line.,我们可以使用以下Bat脚本:

@echo off
set filename=test.txt
echo This is a new line.>>%filename%

解释一下这段脚本的每一行:

@echo off 关闭命令行窗口中的回显(echo)功能。

set filename=test.txt 设置变量filename的值为test.txt。

echo This is a new line.>>%filename% 将文本This is a new line. 写入到文件的末尾。

执行这段脚本后,我们可以打开test.txt文件,看到文件内容已经被修改了,新的内容为:

Hello, World!
This is a test file.
This is a new li

 

 

编辑文件

最后,我们来看一下如何使用Bat脚本编辑文件的内容。假设我们要将test.txt文件中的所有is替换为was,我们可以使用以下Bat脚本:

@echo off
setlocal enabledelayedexpansion
set filename=test.txt
set tempfile=%random%.tmp
(for /f "tokens=*" %%a in (%filename%) do (
  set str=%%a
  set str=!str:is=was!
  echo !str!
)) > %tempfile%
move /y %tempfile% %filename% > nul

解释一下这段脚本的每一行:

 

 

@echo off 关闭命令行窗口中的回显(echo)功能。

setlocal enabledelayedexpansion 开启延迟扩展变量(delayed expansion)功能,用于在循环中编辑变量。

set filename=test.txt 设置变量filename的值为set tempfile=%random%.tmp 创建一个临时文件,用于保存替换后的文本内容。

(for /f "tokens=*" %%a in (%filename%) do ( 开始一个循环,读取文件中的每一行文本。

set str=%%a 将当前行的文本内容保存到变量str中。

set str=!str:is=was! 将str中的所有is替换为was。echo !str! 输出替换后的文本内容。

)) > %tempfile% 循环结束后将所有输出重定向到临时文件中。

move /y %tempfile% %filename% > nul 将临时文件重命名为原始文件名,覆盖原始文件。

执行这段脚本后,我们可以打开test.txt文件,看到所有的is都被替换成了was。

这就是使用Bat脚本读取、写入和编辑文件的基本操作。当然,如果你需要更复杂的操作,可以使用Bat脚本结合其他工具和命令来实现。

 

posted @ 2024-01-19 16:46  网恋被骗5元  阅读(11)  评论(0编辑  收藏  举报