.bat 脚本
.bat 脚本读取文本文件每一行的数据
.bat 脚本
echo off
setlocal enabledelayedexpansion
:: 末尾包含 \
set CurrentDir=%~dp0
echo CurrentDir=%CurrentDir%
::
set LineDatesPath=%CurrentDir%LineDatas.txt
for /F "usebackq delims=" %%A in ("%LineDatesPath%") do (
set LineDate=%%A
set UserDataPath=%appdata%\!LineDate!
echo "UserDataPath=!UserDataPath!"
if exist "!UserDataPath!" (
echo "!UserDataPath! exist"
) else (
echo "!UserDataPath! not exist"
)
echo ------------------------------------------------
)
:: 是否在脚本执行完,保留cmd界面。
if not defined IsPause (
set IsPause=1
)
if %IsPause%==1 (
pause
)
这段代码是一个批处理脚本,用于在Windows命令行中执行一系列操作。
首先,echo off命令关闭了命令行窗口中的命令回显,使得执行过程中不会显示每个命令的执行结果。
setlocal enabledelayedexpansion命令启用了延迟变量扩展,允许在代码块中使用!来获取变量的值。
set CurrentDir=%dp0命令将当前脚本文件的路径赋值给变量CurrentDir,%dp0表示当前脚本文件的驱动器和路径。
echo CurrentDir=%CurrentDir%命令输出变量CurrentDir的值。
set LineDatesPath=%CurrentDir%LineDatas.txt命令将LineDatas.txt文件的路径赋值给变量LineDatesPath,该文件位于当前脚本文件所在目录。
for /F “usebackq delims=” %%A in (“%LineDatesPath%”) do (是一个循环语句,用于逐行读取LineDatas.txt文件的内容,并将每一行赋值给变量%%A。
set LineDate=%%A命令将变量%%A的值赋值给变量LineDate。
echo "LineDate=!LineDate!"命令输出变量LineDate的值。
set UserDataPath=%appdata%!LineDate!命令将%appdata%环境变量和变量LineDate的值拼接成一个路径,并赋值给变量UserDataPath。
echo "UserDataPath=!UserDataPath!"命令输出变量UserDataPath的值。
if exist “!UserDataPath!” (是一个条件语句,判断变量UserDataPath所表示的路径是否存在。
如果路径存在,执行以下操作:
echo ------------------------------------------------命令输出分隔线。
echo “!UserDataPath!” exist命令输出路径存在的提示信息。
echo ------------------------------------------------命令输出分隔线。
if not defined IsPause (是一个条件语句,判断变量IsPause是否未定义。
如果IsPause未定义,执行以下操作:
set IsPause=1命令将变量IsPause赋值为1。
if %IsPause%==1 (是一个条件语句,判断变量IsPause的值是否为1。
如果IsPause的值为1,执行以下操作:
pause命令暂停脚本的执行,等待用户按下任意键继续。
整个脚本的作用是读取LineDatas.txt文件中的每一行,根据每一行的值构建一个路径,并判断该路径是否存在。如果存在,则输出相应的提示信息。最后根据IsPause变量的值决定是否暂停脚本的执行。
LineDatas.txt 文本文件
Line1
Line2
Line3
Line4
Line5
Line6
Line7
Line 8
Line 9
Line 10
执行脚本结果
F:\AppFile\PETool\.bat-ReadLineDatas>echo off
CurrentDir=F:\AppFile\PETool\.bat-ReadLineDatas\
"UserDataPath=C:\Users\ws\AppData\Roaming\Line1"
"C:\Users\ws\AppData\Roaming\Line1 not exist"
------------------------------------------------
"UserDataPath=C:\Users\ws\AppData\Roaming\ Line2"
"C:\Users\ws\AppData\Roaming\ Line2 not exist"
------------------------------------------------
"UserDataPath=C:\Users\ws\AppData\Roaming\ Line3"
"C:\Users\ws\AppData\Roaming\ Line3 not exist"
------------------------------------------------
"UserDataPath=C:\Users\ws\AppData\Roaming\ Line4"
"C:\Users\ws\AppData\Roaming\ Line4 not exist"
------------------------------------------------
"UserDataPath=C:\Users\ws\AppData\Roaming\Line5 "
"C:\Users\ws\AppData\Roaming\Line5 not exist"
------------------------------------------------
"UserDataPath=C:\Users\ws\AppData\Roaming\Line6 "
"C:\Users\ws\AppData\Roaming\Line6 not exist"
------------------------------------------------
"UserDataPath=C:\Users\ws\AppData\Roaming\Line7 "
"C:\Users\ws\AppData\Roaming\Line7 not exist"
------------------------------------------------
"UserDataPath=C:\Users\ws\AppData\Roaming\Line 8"
"C:\Users\ws\AppData\Roaming\Line 8 not exist"
------------------------------------------------
"UserDataPath=C:\Users\ws\AppData\Roaming\Line 9"
"C:\Users\ws\AppData\Roaming\Line 9 not exist"
------------------------------------------------
"UserDataPath=C:\Users\ws\AppData\Roaming\Line 10"
"C:\Users\ws\AppData\Roaming\Line 10 not exist"
------------------------------------------------
请按任意键继续. . .