我正在寻找可能获得文本文件第一行并在Windows中将其设置为变量的最短代码。
在这个StackExchange网站的其他线程中有很多这类事情的例子,但我不正在寻找如何循环并显示文件中的所有行。我想要的只是简单地获得第一行。
答案 0 :(得分:34)
set /p var= <Text.txt
echo %var%
参考文献:http://forums.techguy.org/software-development/551867-batch-file-read-line-text.html 具有讽刺意味的是,海报能够获得第一行,但想要遍历整个文件!
答案 1 :(得分:12)
这只是一个稍短的版本:
set/pz=<file
echo %z%
答案 2 :(得分:2)
我无法在Windows 7下工作;该变量根本没有设置。但这是一个稍长的解决方案:
for /F "delims=" %%i in (Text.txt) do (
set Z=%%i
goto BREAK1
)
:BREAK1
echo %Z%
答案 3 :(得分:1)
如果在(Setlocal EnableDelayedExpansion
)之前启用了延迟展开,则会有更短的(单行)版本
set /pz=<filename.txt&echo !z!
答案 4 :(得分:0)
我必须更改Program Files(x86)
目录中文本文件的文件行。在尝试了很多解决方案后,以下解决方案对我有用:
步骤:
步骤1)使用管道
type
的{{1}}命令获取带有的文件 所需数据步骤2)删除原始文件
步骤3)使用
findstr
命令将内容移回文件 原始文件名步骤4)删除新文件
示例:
type
注意:强>
当我尝试在步骤1中将更改写回原始文件时,结果是一个空文件。
请注意我匹配的字符串是@echo off
set originalFile="C:\Program Files (x86)\<Target File Path>\<Target File Name>"
set newFile="C:\Program Files (x86)\<Target File Path>\<Target newFile Name>"
if exist %originalFile% (
type %originalFile% | findstr /v T4VSHost >> %newFile%
del %originalFile% /F /Q
type %newFile% >> %originalFile%
del %newFile% /F /Q
)
@echo on
,它出现在路径
C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ Extensions \ Microsoft \ Entity Framework Tools \ Templates \ Includes \ EF6.Utility.CS.ttinclude
答案 5 :(得分:-1)
仅供参考......
我尝试了它并且没有工作。但我终于意识到我必须重现文本文件(最初文本文件是由powershell脚本生成的)所以当我这样做并且它有效时。
:: output to different file
Type Text.txt > text2.txt
然后应用相同的代码(将text.txt
更改为text2.txt
)
set /p var= <Text2.txt
echo %var%
如果我使用原始版本,我会在%var%
中收到垃圾,不确定文本文件是否不是<CR>
或者是什么。无论如何,通过复制文本文件,似乎工作正常。