.bat 脚本

.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"
------------------------------------------------
请按任意键继续. . .

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值