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

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

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

回复 5# waitfortea


    不能。你已经亲自通过实验证明了。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

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

回复 5# waitfortea


    %file%也应该不能扩展的吧。
我认为不能。
%%a或%1这种类型才能扩展吧。
(怕错,求大佬来证实或否定一下我的观点。)
@Batcher

TOP

回复 4# Echo11


    所以延迟变量!file!就是无法扩展的吗

TOP

回复 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!"
复制代码
来打印

TOP

回复 2# hfxiang


    要求是使用赋值后的延迟变量,这里是!file!,即希望!~xfile!能输出结果的,但是并没有

TOP

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

TOP

返回列表