为了账号安全,请及时绑定邮箱和手机立即绑定

如何将文件内容读取到批处理文件中的变量中?

如何将文件内容读取到批处理文件中的变量中?

慕妹3242003 2019-11-08 12:56:33
该批处理文件从TEST发行到LIVE。我想在此文件中添加检查约束,以确保特定文件夹中有相应的发行文档。"C:\Program Files\Windows Resource Kits\Tools\robocopy.exe" "\\testserver\testapp$"        "\\liveserver\liveapp$" *.* /E /XA:H /PURGE /XO /XD ".svn" /NDL /NC /NS /NPdel "\\liveserver\liveapp$\web.config"ren "\\liveserver\liveapp$\web.live.config" web.config所以我对如何实现这一目标有两个疑问...version.txt文件\\testserver\testapp$夹中有一个文件,该文件的唯一内容是内部版本号(例如,对于45,对于内部版本45)如何将version.txt文件的内容读入批处理文件中的变量中?如何\\fileserver\myapp\releasedocs\ {build}.doc使用第1部分中的变量代替{build} 检查文件,是否存在?
查看完整描述

3 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

将文件内容读入变量:


for /f "delims=" %%x in (version.txt) do set Build=%%x

要么


set /p Build=<version.txt

两者仅在文件中的单行中就具有相同的作用,对于更多行,for变体会将最后一行放入变量中,而set /p将使用第一行。


就像使用任何其他环境变量一样,使用变量毕竟是一个:


%Build%

因此,检查是否存在:


if exist \\fileserver\myapp\releasedocs\%Build%.doc ...

尽管很可能那里没有UNC路径。现在无法测试,但请记住这一点。


查看完整回答
反对 回复 2019-11-08
?
临摹微笑

TA贡献1982条经验 获得超2个赞

您可以像这样从文件中读取多个变量:


for /f "delims== tokens=1,2" %%G in (param.txt) do set %%G=%%H

其中param.txt:


PARAM1=value1

PARAM2=value2

...


查看完整回答
反对 回复 2019-11-08
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

要将文件的所有行都加载到变量中,需要延迟扩展,因此请执行以下操作:


SETLOCAL EnableDelayedExpansion


for /f "Tokens=* Delims=" %%x in (version.txt) do set Build=!Build!%%x

有一些特殊字符的问题,虽然特别;,%和!


查看完整回答
反对 回复 2019-11-08
  • 3 回答
  • 0 关注
  • 1573 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信