Windows 从文件读取输入并在批处理中将其传递到文件时出现问题
从输入文件读取下面显示的值(file.txt)时出现问题。 <>符号导致读取不正确。我厌倦了使用^(转义字符),但它没有用,我还尝试了双引号(“”),结果是相同的混乱输出 我是否可以用<>=字符在迭代中读取文件的内容。 请帮忙Windows 从文件读取输入并在批处理中将其传递到文件时出现问题,windows,batch-file,cmd,batch-processing,Windows,Batch File,Cmd,Batch Processing,从输入文件读取下面显示的值(file.txt)时出现问题。 符号导致读取不正确。我厌倦了使用^(转义字符),但它没有用,我还尝试了双引号(“”),结果是相同的混乱输出 我是否可以用=字符在迭代中读取文件的内容。 请帮忙 FILE.txt contains A;Select * from TablenameA where time=>yesterdaytime and time<endtime;XXX;YYY B;Select * from TablenameB where time
FILE.txt contains
A;Select * from TablenameA where time=>yesterdaytime and time<endtime;XXX;YYY
B;Select * from TablenameB where time=>yesterdaytime and time<endtime;AAA;YYY
C;Select * from TablenameC where time=>yesterdaytime and time<endtime;BBB;YYY
--------------SCRIPT----------------------------------
SET vFILENAME=FILE.txt
for /F "tokens=1,2,3,4 delims=;" %%i in (%vFILENAME%) do call :process "%%i" "%%j" "%%k" "%%l"
goto END
:process
set VAR1=%~1
set VAR2=%~2
set VAR3=%~3
set VAR4=%~4
some processing on VAR1,2,3,4 and then
echo PrmOne=%VAR1%>Output_%VAR1%.txt
echo PrmTWO=%VAR2%>>Output_%VAR1%.txt
echo PrmTHREE=%VAR3%>>Output_%VAR1%.txt
echo PrmFOUR=%VAR4%>>Output_%VAR1%.txt
FILE.txt包含
A、 从TablenameA中选择*,其中时间=>YesterDaily和TimeYesterDaily和TimeYesterDaily以及TimeYesterDaily和timeOutput_uu%VAR1%.txt
echo PrmTWO=%VAR2%>>输出\uU1%VAR1%.txt
echo PrmTHREE=%VAR3%>>输出\uU1%VAR1%.txt
echo PrmFOUR=%VAR4%>>输出\uU1%VAR1%.txt
-----输出(每个迭代都是新的)文件将包含每个迭代的类似值----------------
PrmOne=A
PrmTWO=从TablenameA中选择*,其中时间=>YesterDaily\u已更新且时间您可以使用延迟扩展来避免可变内容输出的问题
>“输出\uU1%VAR1%.txt”(
延迟扩展
echo PrmOne=!VAR1!
echo PrmTWO=!VAR2!
echo prmtree=!VAR3!
echo PrmFOUR=!VAR4!
端部
)
您可以使用延迟扩展来避免可变内容输出的问题
>“输出\uU1%VAR1%.txt”(
延迟扩展
echo PrmOne=!VAR1!
echo PrmTWO=!VAR2!
echo prmtree=!VAR3!
echo PrmFOUR=!VAR4!
端部
)
您可以使用延迟扩展来避免可变内容输出的问题
>“输出\uU1%VAR1%.txt”(
延迟扩展
echo PrmOne=!VAR1!
echo PrmTWO=!VAR2!
echo prmtree=!VAR3!
echo PrmFOUR=!VAR4!
端部
)
您可以使用延迟扩展来避免可变内容输出的问题
>“输出\uU1%VAR1%.txt”(
延迟扩展
echo PrmOne=!VAR1!
echo PrmTWO=!VAR2!
echo prmtree=!VAR3!
echo PrmFOUR=!VAR4!
端部
)
与Aacini的原始代码略有不同。无需调用函数。如果需要调用函数,请相应调整
@echo off
SET vFILENAME=FILE.txt
for /F "usebackq tokens=1,2,3,4 delims=;" %%i in ("%vFILENAME%") do (
>>%%~i.txt (
set /P "=PrmOne=%%~i" & echo/
set /P "=PrmTwo=%%~j" & echo/
set /P "=PrmThree=%%~k" & echo/
set /P "=PrmFour=%%~l" & echo/
)<nul
)
@echo关闭
设置vFILENAME=FILE.txt
对于/F“usebackq tokens=1,2,3,4 delims=;”%%i in(“%vFILENAME%”)do(
>>%%~i.txt(
设置/P“=PrmOne=%%~i”&echo/
设置/P“=PrmTwo=%%~j”&echo/
设置/P“=PrmThree=%%~k”&echo/
设置/P“=PRM四个=%%~l”&echo/
) 与Aacini的原始代码略有不同。无需调用函数。如果需要调用函数,请进行相应调整
@echo off
SET vFILENAME=FILE.txt
for /F "usebackq tokens=1,2,3,4 delims=;" %%i in ("%vFILENAME%") do (
>>%%~i.txt (
set /P "=PrmOne=%%~i" & echo/
set /P "=PrmTwo=%%~j" & echo/
set /P "=PrmThree=%%~k" & echo/
set /P "=PrmFour=%%~l" & echo/
)<nul
)
@echo关闭
设置vFILENAME=FILE.txt
对于/F“usebackq tokens=1,2,3,4 delims=;”%%i in(“%vFILENAME%”)do(
>>%%~i.txt(
设置/P“=PrmOne=%%~i”&echo/
设置/P“=PrmTwo=%%~j”&echo/
设置/P“=PrmThree=%%~k”&echo/
设置/P“=PRM四个=%%~l”&echo/
) 与Aacini的原始代码略有不同。无需调用函数。如果需要调用函数,请进行相应调整
@echo off
SET vFILENAME=FILE.txt
for /F "usebackq tokens=1,2,3,4 delims=;" %%i in ("%vFILENAME%") do (
>>%%~i.txt (
set /P "=PrmOne=%%~i" & echo/
set /P "=PrmTwo=%%~j" & echo/
set /P "=PrmThree=%%~k" & echo/
set /P "=PrmFour=%%~l" & echo/
)<nul
)
@echo关闭
设置vFILENAME=FILE.txt
对于/F“usebackq tokens=1,2,3,4 delims=;”%%i in(“%vFILENAME%”)do(
>>%%~i.txt(
设置/P“=PrmOne=%%~i”&echo/
设置/P“=PrmTwo=%%~j”&echo/
设置/P“=PrmThree=%%~k”&echo/
设置/P“=PRM四个=%%~l”&echo/
) 与Aacini的原始代码略有不同。无需调用函数。如果需要调用函数,请进行相应调整
@echo off
SET vFILENAME=FILE.txt
for /F "usebackq tokens=1,2,3,4 delims=;" %%i in ("%vFILENAME%") do (
>>%%~i.txt (
set /P "=PrmOne=%%~i" & echo/
set /P "=PrmTwo=%%~j" & echo/
set /P "=PrmThree=%%~k" & echo/
set /P "=PrmFour=%%~l" & echo/
)<nul
)
@echo关闭
设置vFILENAME=FILE.txt
对于/F“usebackq tokens=1,2,3,4 delims=;”%%i in(“%vFILENAME%”)do(
>>%%~i.txt(
设置/P“=PrmOne=%%~i”&echo/
设置/P“=PrmTwo=%%~j”&echo/
设置/P“=PrmThree=%%~k”&echo/
设置/P“=PRM四个=%%~l”&echo/
)这是你的另一个例子。我当然想知道你在做什么:对VAR1,2,3,4进行一些处理,然后。我们今天会看到第三个问题吗,它会完全改变批处理文件吗?你在以前的线程中从未回答过我的问题。你为什么要调用函数。为什么不保留所有的过程在FOR/F命令内唱歌。使用CALL对批处理文件的实时性能有很大影响。@Squashman在此处添加所有内容是不可行的。由于编写的代码太长。解释所有内容将花费大量时间和精力。希望您不会看到第三篇文章中有其他问题。:)谢谢你花时间回答我的问题。这是你的另一个例子吗?我当然想知道你在做什么:对VAR1,2,3,4进行一些处理,然后。我们今天会看到第三个问题吗,它会完全改变批处理文件吗?你在上一个线程中从未回答过我的问题。你为什么打电话来一个函数。为什么不把所有的处理都放在FOR/F命令中。使用CALL对批处理文件的实时性能有很大的影响。@Squashman在这里添加所有内容不是一个可行的选择。由于编写代码的长度太长。解释所有内容将花费大量的时间和精力。希望您不会看到第三篇关于som的文章e其他问题:)谢谢你花时间回答我的问题。这是你的另一个例子吗?我当然想知道你在做什么:对VAR1,2,3,4进行一些处理,然后。我们今天会看到第三个问题吗,它会完全改变批处理文件吗?你在上一个线程中从未回答过我的问题。你为什么打电话来一个函数。为什么不把所有的处理都放在FOR/F命令中。使用CALL对批处理文件的实时性能有很大的影响。@Squashman在这里添加所有内容不是一个可行的选择。由于编写代码的长度太长。解释所有内容将花费大量的时间和精力。希望您不会看到第三篇关于som的文章(其他问题:)谢谢你花时间回答我的问题。是吗