找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18373|回复: 6

[文本处理] [已解决]批处理如何在循环中使用延迟变量的扩展取到文件后缀?

[复制链接]
发表于 2022-9-27 18:26:22 | 显示全部楼层 |阅读模式
本帖最后由 waitfortea 于 2022-9-28 18:56 编辑

/我的资源/【2】python中级(必学)/【15】python实用编程技巧进阶(附赠:建议学习)/第10章【本套课程附带源代码】/.DS_Store
/我的资源/【2】python中级(必学)/【08】 JQuery/01-jquery的介绍.mp4
/我的资源/【2】python中级(必学)/【14】 正则表达式/01-property属性-装饰器方式的使用.mp4
/我的资源/【2】python中级(必学)/【13】mini-web框架/01-web框架介绍.mp4
/我的资源/【2】python中级(必学)/【03】多任务进程(1)/01-编辑器vim的介绍.mp4
/我的资源/【2】python中级(必学)/【08】 JQuery/02-jquery的使用.mp4
/我的资源/【2】python中级(必学)/【14】 正则表达式/02-property属性-类属性的方式使用.mp4
/我的资源/【2】python中级(必学)/【13】mini-web框架/02-web框架开发-获取处理结果.mp4
/我的资源/【2】python中级(必学)/【03】多任务进程(1)/02-编辑器vim的使用.mp4
/我的资源/【2】python中级(必学)/【08】 JQuery/03-jquery选择器.mp4
/我的资源/【2】python中级(必学)/【13】mini-web框架/03-web框架开发-拼接响应报文发送给浏览器.mp4
文本如上 设为cache_file.txt
bat命令如下
  1. @echo off
  2. chcp 65001
  3. setlocal enabledelayedexpansion
  4. cd /d "%~dp0"
  5. cd. >"%~dp0a.txt"
  6. cd. >"%~dp0b.txt"
  7. for /f  "delims=/, tokens=1,*" %%a in ( cache_file.txt ) do (
  8.         echo %%b
  9.         set "file=%%b"
  10.         echo !~xfile!
  11.         set "file=!file:/=\!"
  12.         echo !file!
  13.         echo %%~xb
  14.         echo !~xfile!
  15.         )
  16. pause
复制代码
无论我使用哪种路径符号都无法获取延迟变量作为文件的后缀名,不知道怎么解决
发表于 2022-9-27 21:11:42 | 显示全部楼层

  1. for /f  "tokens=* delims=" %%a in ( cache_file.txt ) do echo "%%~xa"
复制代码
 楼主| 发表于 2022-9-27 21:15:15 | 显示全部楼层
回复 2# hfxiang


    要求是使用赋值后的延迟变量,这里是!file!,即希望!~xfile!能输出结果的,但是并没有
发表于 2022-9-27 22:47:13 | 显示全部楼层
回复 3# waitfortea


    嵌套CALL。
首先,建议
  1. set "file=%%b"
复制代码
改成
  1. set "file=%%~b"
复制代码
,确保%file%值是没有引号的(习惯)。

不要  echo !~xfile!,先加一段代码,如:
  1. :HouZhui
  2. echo %~x1
  3. goto:eof
复制代码
,然后用
  1. CALL :HouZhui "!file!"
复制代码
来打印
 楼主| 发表于 2022-9-28 01:46:34 | 显示全部楼层
回复 4# Echo11


    所以延迟变量!file!就是无法扩展的吗
发表于 2022-9-28 08:32:39 | 显示全部楼层
本帖最后由 Echo11 于 2022-9-28 09:11 编辑

回复 5# waitfortea


    %file%也应该不能扩展的吧。
我认为不能。
%%a或%1这种类型才能扩展吧。
(怕错,求大佬来证实或否定一下我的观点。)
@Batcher
发表于 2022-9-28 09:47:11 | 显示全部楼层
回复 5# waitfortea


    不能。你已经亲自通过实验证明了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 14:24 , Processed in 0.020813 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表