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

[文本处理] 批处理如何正确读取文件内容,并将内容赋值于变量?

[复制链接]
发表于 2025-4-26 22:06:26 | 显示全部楼层
回复 15# kimycai


   试了下1楼代码,是chcp 65001后 对中文支持欠佳,但是没有反馈;10楼对8楼的第一段代码同样没有反馈;所以解决问题,需要双方共同配合,作为求助者更需要详细提供反馈信息。
  1. '的内容为:' is not recognized as an internal or external command,
  2. operable program or batch file.
  3. Press any key to continue . . .
复制代码


原因参考大佬的研究 批处理65001代码页下多字节字符乱码问题初探
 楼主| 发表于 2025-4-26 22:09:21 | 显示全部楼层
回复  kimycai

完整的诊断须知 BV.log 文件的真实内容还有你实际运行的批处版本...
aloha20200628 发表于 2025-4-26 21:29



    实际内容就是那串字符,仅此而已,并没有隐藏其他信息
发表于 2025-4-27 11:55:58 | 显示全部楼层
回复 17# kimycai

将一楼代码简化如下并用 utf-8 编码存盘运行,依然复现楼主所述问题,但只须在第3行末尾追加一个英文字符如空格或分号等即可解决,有关此问题的讨论可参见老帖》 http://www.bathome.net/thread-68945-1-1.html

  1. @echo off &chcp 65001>nul
  2. for /f "usebackq delims=" %%a in ("BV.log") do (set "BV=%%a")
  3. rem 引用 BV 变量并输出
  4. echo,读取到的内容为: %BV%
  5. pause&exit/b
复制代码
 楼主| 发表于 2025-4-27 22:33:03 | 显示全部楼层
回复  kimycai


   试了下1楼代码,是chcp 65001后 对中文支持欠佳,但是没有反馈;10楼对8楼的第一段 ...
77七 发表于 2025-4-26 22:06



    感谢指教,以后会对命令的报错信息贴的更详细,我得研究一下这个帖子
发表于 2025-4-29 21:30:30 | 显示全部楼层
回复 1# kimycai


   
先   set "BV=%%a"
     echo  %BV%  
再   set "BV=!BV!%%a"
     echo  %BV%  
就会找到问题所在,
最后加 pause 回看结果。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 07:08 , Processed in 0.018350 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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