我有一个批处理文件,我想包含一个包含一些变量(比如配置变量)的外部文件。有可能吗?
发布于 2010-05-04 16:48:49
如果外部配置文件也是有效的批处理文件,则只需使用:
call externalconfig.bat
在你的脚本里面。尝试创建以下a.bat:
@echo off
call b.bat
echo %MYVAR%
和b.bat:
set MYVAR=test
运行a.bat应该会生成输出:
test
发布于 2013-07-24 04:29:52
Batch使用小于和大于括号作为输入和输出管道。
>file.ext
只使用一个类似于上面的输出框将覆盖该文件中的所有信息。
>>file.ext
使用双右括号会将下一行添加到文件中。
(
echo
echo
)<file.ext
这将根据文件的行来执行参数。在本例中,我们使用了两行代码,这两行代码将使用"echo“键入。左方括号接触右方括号意味着来自该文件的信息将被输送到这些行中。
我编译了一个仅限示例的读/写文件。下面的文件被分成几个部分来解释每个部分的作用。
@echo off
echo TEST R/W
set SRU=0
在本例中,SRU可以是任何值。实际上,我们对它进行了设置,以防止在按回车键过快时发生崩溃。
set /p SRU=Skip Save? (y):
if %SRU%==y goto read
set input=1
set input2=2
set /p input=INPUT:
set /p input2=INPUT2:
现在,我们需要将变量写入一个文件。
(echo %input%)> settings.cdb
(echo %input2%)>> settings.cdb
pause
我使用.cdb作为“命令数据库”的缩写。您可以使用任何扩展名。下一节将从头开始测试代码。我们不想使用在文件开头运行的set变量,我们实际上希望从我们刚刚编写的settings.cdb中加载它们。
:read
(
set /p input=
set /p input2=
)<settings.cdb
因此,我们只通过管道传输您在文件开头编写的前两行信息(您可以选择跳过设置要检查的行,以确保它正常工作),以设置input和input2变量。
echo %input%
echo %input2%
pause
if %input%==1 goto newecho
pause
exit
:newecho
echo If you can see this, good job!
pause
exit
这将显示通过管道将settings.cdb输入到括号中时设置的信息。作为一个额外的好工作激励因素,按enter并设置我们之前设置为"1“的默认值将返回一个好工作消息。使用支架管道是双向的,而且比设置"FOR“要容易得多。:)
发布于 2013-09-28 00:04:43
所以你只需要这样做,对吗?
@echo off
echo text shizzle
echo.
echo pause^>nul (press enter)
pause>nul
REM writing to file
(
echo XD
echo LOL
)>settings.cdb
cls
REM setting the variables out of the file
(
set /p input=
set /p input2=
)<settings.cdb
cls
REM echo'ing the variables
echo variables:
echo %input%
echo %input2%
pause>nul
if %input%==XD goto newecho
DEL settings.cdb
exit
:newecho
cls
echo If you can see this, good job!
DEL settings.cdb
pause>nul
exit
https://stackoverflow.com/questions/2763875
复制相似问题