最短的Windows批处理文件代码,以将文件的第一行设置为变量?

时间:2011-02-16 23:38:05

标签: windows batch-file cmd

我正在寻找可能获得文本文件第一行并在Windows中将其设置为变量的最短代码。

在这个StackExchange网站的其他线程中有很多这类事情的例子,但我正在寻找如何循环并显示文件中的所有行。我想要的只是简单地获得第一行。

6 个答案:

答案 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>或者是什么。无论如何,通过复制文本文件,似乎工作正常。