我需要能够加载文本文件的全部内容并将其加载到变量中以进行进一步处理.
我怎样才能做到这一点?
感谢Roman Odaisky的回答,这就是我的所作所为.
SetLocal EnableDelayedExpansion set content= for /F "delims=" %%i in (test.txt) do set content=!content! %%i echo %content% EndLocal
Will Bickfor.. 51
如果你的set命令支持/ p开关,那么你可以通过这种方式管道输入.
set /p VAR1=设置/?|找到"/ P"
/ P开关允许您将变量的值设置为用户输入的输入行.在读取输入行之前显示指定的promptString.promptString可以为空.
这具有为未注册的文件类型工作的额外好处(接受的答案没有).
1> Will Bickfor..:如果你的set命令支持/ p开关,那么你可以通过这种方式管道输入.
set /p VAR1=设置/?|找到"/ P"
/ P开关允许您将变量的值设置为用户输入的输入行.在读取输入行之前显示指定的promptString.promptString可以为空.
这具有为未注册的文件类型工作的额外好处(接受的答案没有).
应该注意,此方法仅捕获"test.txt"的第一行.它不会将VAR1设置为文件的全部内容.
2> Roman Odaisk..:使用
for
,类似于:set content= for /f "delims=" %%i in ('filename') do set content=%content% %%i也许你必须做
setlocal enabledelayedexpansion
和/或使用!content!
而不是%content%
.我无法测试,因为我附近没有任何MS Windows(我希望你也一样:-).我所知道的最好的批处理文件 - 黑魔法参考是在http://www.rsdn.ru/article/winshell/batanyca.xml.如果你不懂俄语,你仍然可以使用提供的代码片段.
其中一个非常令人讨厌的部分是Windows需要为上面的'filename'参数具有关联的文件类型。如果您尝试使用未注册的文件类型,则脚本将在窗口提示中阻止。