batch-file - Cmd 文件用换行符将文件内容放入 var
问题描述
我正在研究一个 cmd 脚本。在其中我读取一个文件并将结果放在一个变量中我的文件看起来像这样:
第一行(空白行) 第二行(空白行) 它继续这样
在我的代码中,我正在使用这个:
For /f "Tokens=* Delims=" %%x in (temp.txt) do set content=!content!%%x
结果,一切都在一行上,我没有空白行:第一行第二行...我怎样才能得到空白行?
解决方案
您的 for 循环不会获取空行,因为会跳过空行。
您需要一个技巧,例如使用 findstr 在每行前面加上行号。
要添加换行符,您可以定义一个包含单个换行符的变量(在代码中的\n
变量)
@echo off
SETLOCAL EnableDelayedExpansion
(set \n=^
%=do not delete this line=%
)
set "content="
FOR /F "usebackq delims=" %%a in (`"findstr /n ^^ t7.bat"`) do (
set "var=%%a"
set "var=!var:*:=!"
if defined content (
set "content=!content!!\n!!var!"
) else set "content=!var!"
)
echo(!content!
此代码仍有一些问题,带有感叹号,但对于简单的文件内容它可以工作
推荐阅读
- selenium - 如何使用 Katalon Studio 通过 Selenium 在子 WebElements 列表中找到具有“checked”属性的 webelement
- ruby - File.readlines($file)[z] 在红宝石中是什么意思?
- vsto - 如果 Outlook 插件定义的某些规则被破坏,如何防止保存 Outlook.AppointmentItem
- windows - 在 powershell 中生成 RSA 密钥对
- batch-file - 预定蝙蝠的净使用
- php - PHP 如果值为 1,则在复选框中设置一个钩子,如果值为 0,则取消选中
- sql - 删除 1.3 亿行
- spring - 我应该如何在 Spring Boot 中运行前端集成测试?
- python - 一定范围内的编码和解码
- composer-php - 如何查找和处理不在我的 composer.json 中的过时 composer 包的原因?