Board logo

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

作者: waitfortea    时间: 2022-9-27 18:26     标题: [已解决]批处理如何在循环中使用延迟变量的扩展取到文件后缀?

本帖最后由 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
复制代码
无论我使用哪种路径符号都无法获取延迟变量作为文件的后缀名,不知道怎么解决
作者: hfxiang    时间: 2022-9-27 21:11

  1. for /f  "tokens=* delims=" %%a in ( cache_file.txt ) do echo "%%~xa"
复制代码

作者: waitfortea    时间: 2022-9-27 21:15

回复 2# hfxiang


    要求是使用赋值后的延迟变量,这里是!file!,即希望!~xfile!能输出结果的,但是并没有
作者: Echo11    时间: 2022-9-27 22:47

回复 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!"
复制代码
来打印
作者: waitfortea    时间: 2022-9-28 01:46

回复 4# Echo11


    所以延迟变量!file!就是无法扩展的吗
作者: Echo11    时间: 2022-9-28 08:32

本帖最后由 Echo11 于 2022-9-28 09:11 编辑

回复 5# waitfortea


    %file%也应该不能扩展的吧。
我认为不能。
%%a或%1这种类型才能扩展吧。
(怕错,求大佬来证实或否定一下我的观点。)
@Batcher
作者: Batcher    时间: 2022-9-28 09:47

回复 5# waitfortea


    不能。你已经亲自通过实验证明了。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2