Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 从文件读取输入并在批处理中将其传递到文件时出现问题_Windows_Batch File_Cmd_Batch Processing - Fatal编程技术网

Windows 从文件读取输入并在批处理中将其传递到文件时出现问题

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)时出现问题。 <>符号导致读取不正确。我厌倦了使用^(转义字符),但它没有用,我还尝试了双引号(“”),结果是相同的混乱输出

我是否可以用<>=字符在迭代中读取文件的内容。 请帮忙

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的文章(其他问题:)谢谢你花时间回答我的问题。是吗