[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 aloha20200628 于 2024-12-30 21:36 编辑

回复 1# hztccy

   采用 for /f ... %%i in () do ... 句式获取的返回值其实质是管道文件数据流,如同采用 for /f ... %%i in (1.txt) do set v=%%i 或 set/p v=<1.txt 读取外部文件一样,变量v中包含的%...%字段未经cmd预处理染指,故会作为原始字面量保全在变量v中。楼主可先将
   abc%x%zyx
   存为1.txt,再用以下代码验证结果 》即变量v中包含的 %x% 并不会被自动展开求值... 同理回到一楼代码,变量 DesktopPath 所包含的 %USERPROFILE% 也不会被自动展开求值... 至于对其再求值的两种解决方法已如二楼所示
  1. @echo off &setlocal &set "x=0"
  2. echo,x=%x%
  3. set/p v=<1.txt
  4. echo,%v%
  5.    echo,再求值
  6.    call set v=%v%
  7.    echo,  %v%
  8. for /f "delims=" %%i in (1.txt) do set "v=%%i"
  9. echo,%v%
  10.    echo,再求值
  11.    for /f "delims=" %%i in (1.txt) do call set "v=%%i"
  12.    echo,  %v%
  13. pause&exit/b
复制代码

TOP

返回列表