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

[文件操作] [已解决]BAT命令 for /f in 怎样处理带空格的文件名

[复制链接]
发表于 2021-1-20 13:35:55 | 显示全部楼层 |阅读模式
  1. @echo off & setlocal enabledelayedexpansion & chcp 65001

  2. set i=1

  3. for /f "delims=^" %%a in (3 哈哈哈.srt) do (
  4.         set /a j=!i! %% 3
  5.         if !j!==0 echo %%a >> 哈哈哈.txt
  6.         set /a i+=1
  7. )

  8. pause
复制代码
测试报错 The system cannot find the file 3

如果加上双引号 in ("3 哈哈哈.srt") 的话,%%a 就是字符串 "3 哈哈哈.srt",不是这个 srt 文件每一行的内容

请教如何处理才能读取每一行的内容?
发表于 2021-1-20 13:54:11 | 显示全部楼层
那就in ('type "%%a"')试试

评分

参与人数 1技术 +1 收起 理由
gwinkle + 1 感谢

查看全部评分

 楼主| 发表于 2021-1-20 14:07:52 | 显示全部楼层
回复 2# qixiaobin0715


    谢谢啊!可以了哈哈
发表于 2021-1-20 14:10:52 | 显示全部楼层
文件名中有特殊字符的,请用增强型句式
for /f "usebackq" %%i in ("文件名") do (……)
或者像2楼,换个写法。

评分

参与人数 1技术 +1 收起 理由
gwinkle + 1 学到了,感谢!一直只知道 delims 和 token ...

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 10:05 , Processed in 0.080774 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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