如何将文本文件的内容加载到批处理文件变量中?

Ken*_*eng 32 windows command-line cmd batch-file

我需要能够加载文本文件的全部内容并将其加载到变量中以进行进一步处理.

我怎样才能做到这一点?


感谢Roman Odaisky的回答,这就是我的所作所为.

SetLocal EnableDelayedExpansion
set content=
for /F "delims=" %%i in (test.txt) do set content=!content! %%i

echo %content%
EndLocal
Run Code Online (Sandbox Code Playgroud)

Wil*_*ord 51

如果你的set命令支持/ p开关,那么你可以通过这种方式管道输入.

set /p VAR1=<test.txt
set /? |find "/P"
Run Code Online (Sandbox Code Playgroud)

设置/?|找到"/ P"

/ P开关允许您将变量的值设置为用户输入的输入行.在读取输入行之前显示指定的promptString.promptString可以为空.

这具有为未注册的文件类型工作的额外好处(接受的答案没有).

  • 应该注意,此方法仅捕获"test.txt"的第一行.它不会将VAR1设置为文件的全部内容. (18认同)

Rom*_*sky 16

使用for,类似于:

set content=
for /f "delims=" %%i in ('filename') do set content=%content% %%i
Run Code Online (Sandbox Code Playgroud)

也许你必须做setlocal enabledelayedexpansion和/或使用!content!而不是%content%.我无法测试,因为我附近没有任何MS Windows(我希望你也一样:-).

我所知道的最好的批处理文件 - 黑魔法参考是在http://www.rsdn.ru/article/winshell/batanyca.xml.如果你不懂俄语,你仍然可以使用提供的代码片段.

  • 其中一个非常令人讨厌的部分是Windows需要为上面的'filename'参数具有关联的文件类型。如果您尝试使用未注册的文件类型,则脚本将在窗口提示中阻止。 (2认同)