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

[文本处理] 【已解决】批处理for /f命令拆解字符串搞丢了文本中的感叹号,请教如何解决?

本帖最后由 52hz 于 2024-4-12 13:39 编辑

请教大佬们,我用for /f循环来拆解文本,变量%%b和%%c原本是图片链接,由于开启了变量延迟,拆解后的文本丢失了!!导致链接错误。
为了测试丢失的原因,关闭了变量延迟后链接中的!!就不会丢失了,可是此for循环中还有其它地方是需要使用延迟变量的,这个不能关闭,请问有其他办法解决么?
文本内容如下:
  1. XTC3082228090 https://img.alicdn.com/imgextra/i2/3301937583/O1CN01BLj6Va25t4JSOGUtv_!!3301937583.jpg https://img.alicdn.com/imgextra/i4/3301937583/O1CN012bQDIE25t4JR0chCt_!!3301937583.png
复制代码
代码如下:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=:" %%N in ('findstr/n ".*" "%~dp0明细复制在这里.txt"')do set "Total=%%N"
  4. for /f %%I in ('echo prompt $H ^| cmd') do (
  5.     set "BS=%%I%%I%%I%%I%%I"
  6. )
  7. for /f "tokens=1-3 delims= " %%a in (%~dp01.txt) do (
  8.     set /a X+=1
  9.     set /p "= %BS%             ★ 一共【!Total!】个,正在处理第【!X!】个……"<nul
  10.     curl -s "%%b" > "%~dp0白底/%%a.jpg" -H "User-Agent:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)"
  11.     curl -s "%%c" > "%~dp0透明/%%a.png" -H "User-Agent:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)"
  12. set /p "=%BS%%BS%%BS%%BS%%BS%%BS%%BS%%BS%%BS%%BS%%BS%"<nul
  13. pause
  14. )
  15. set /p "=%BS%%BS%%BS%%BS%%BS%%BS%%BS%%BS%%BS%%BS%%BS%"<nul
  16. set /p "= %BS%             图片下载完成!任意键返回主菜单!            "<nul        
  17. pause > nul
  18. exit
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 2# terse


    多谢大佬,明白了,去掉最顶部的全局变量延迟,只在for内需要用到的地方开启
    多谢~

TOP

回复 4# 77七


    也可以耶,学到新姿势,前边加个call就可以代替setlocal?看来我要去学一下call了,多谢大佬不吝赐教。

TOP

回复 6# Batcher


    好的,多谢老大,我学习一下。

TOP

返回列表