Windows 如何将文件内容分配给变量?

Windows 如何将文件内容分配给变量?,windows,if-statement,for-loop,batch-file,cmd,Windows,If Statement,For Loop,Batch File,Cmd,您可能知道我想要什么,但命令行解释器不知道。如何做好这件事 PS.我指的是整个内容,而不仅仅是第一行 对于内容(所有行): 您的意思是从文件中读取变量吗?您可以将内容逐行放入一组变量中。我对“内容”进行了编辑。%1和%1之间的区别是什么?~参数会删除周围的双引号。 @echo off SET str1=type %1 SET str2=type %2 echo File1: %str1% echo echo File2: %str2% @echo off &setlocal enab

您可能知道我想要什么,但命令行解释器不知道。如何做好这件事

PS.我指的是整个内容,而不仅仅是第一行

对于内容(所有行):


您的意思是从文件中读取变量吗?您可以将内容逐行放入一组变量中。我对“内容”进行了编辑。
%1
%1
之间的区别是什么?
~
参数会删除周围的双引号。
@echo off
SET str1=type %1
SET str2=type %2
echo File1: %str1%
echo 
echo File2: %str2%
@echo off &setlocal enabledelayedexpansion
set "files=1"
if "%~1"=="" set "files="
if "%~2"=="" set "files="
if not defined files echo Missing filename(s^).&goto:eof
:: read the first file
set /a cnt1=0
for /f "usebackqdelims=" %%i in ("%~1") do set /a cnt1+=1 &set "str1!cnt1!=%%i"
:: read the second file
set /a cnt2=0
for /f "usebackqdelims=" %%i in ("%~2") do set /a cnt2+=1 &set "str2!cnt2!=%%i"
:: write the first file
echo File1:
for /l %%i in (1,1,%cnt1%) do echo !str1%%i!
:: write the second file
echo File2:
for /l %%i in (1,1,%cnt2%) do echo !str2%%i!
endlocal