Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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
Batch file 包含未正确解释的路径的变量?_Batch File - Fatal编程技术网

Batch file 包含未正确解释的路径的变量?

Batch file 包含未正确解释的路径的变量?,batch-file,Batch File,我有以下代码: @ECHO OFF IF EXIST comandosAEjecutar.tpl (DEL comandosAEjecutar.tpl) ECHO Procesando archivos a subir... FOR /f "tokens=1 delims=," %%g IN (config.tpl) DO ECHO open %%g>> comandosAEjecutar.tpl FOR /f "tokens=2 delims=,

我有以下代码:

@ECHO OFF

    IF EXIST comandosAEjecutar.tpl (DEL comandosAEjecutar.tpl)

    ECHO Procesando archivos a subir...
    FOR /f "tokens=1 delims=," %%g IN (config.tpl) DO ECHO open %%g>> comandosAEjecutar.tpl
    FOR /f "tokens=2 delims=," %%g IN (config.tpl) DO ECHO %%g>> comandosAEjecutar.tpl
    FOR /f "tokens=3 delims=," %%g IN (config.tpl) DO ECHO %%g>> comandosAEjecutar.tpl
    ECHO binary>> comandosAEjecutar.tpl
    FOR /f "tokens=4 delims=," %%g IN (config.tpl) DO ECHO cd %%g>> comandosAEjecutar.tpl
    FOR /f "tokens=5 delims=," %%p IN (config.tpl) DO @SET pathLocal=%%p

    FOR /r . %%g IN (%pathLocal%\*.txt %pathLocal%\*.zip) DO ECHO delete %%~nxg>> comandosAEjecutar.tpl
    FOR /r . %%g IN (%pathLocal%\*.txt %pathLocal%\*.zip) DO ECHO put %%~nxg>> comandosAEjecutar.tpl

    ECHO bye>> comandosAEjecutar.tpl

    ECHO Comienzo de la sesion FTP...

    FTP -i -s:"comandosAEjecutar.tpl"

    ECHO Finalizado.
    PAUSE
    EXIT
实际问题在于以下几行:

    FOR /f "tokens=5 delims=," %%p IN (config.tpl) DO @SET pathLocal=%%p

    FOR /r . %%g IN (%pathLocal%\*.txt %pathLocal%\*.zip) DO ECHO delete %%~nxg>> comandosAEjecutar.tpl
    FOR /r . %%g IN (%pathLocal%\*.txt %pathLocal%\*.zip) DO ECHO put %%~nxg>> comandosAEjecutar.tpl
我知道变量“pathLocal”的设置是正确的,因为我做了回显,它显示了正确的路径,例如:\\red\C\pc\pc.com\serv\down\bol


问题是,当我在该目录中有.txt和.zip文件时,以下两行没有将变量解释为路径,因为它们不会产生任何结果。

我相信您的问题在于括号中的pathlocal变量,请尝试将其移到/r之后

FOR /r %pathLocal% %%g IN (*.txt *.zip) DO ECHO delete %%~nxg>> comandosAEjecutar.tpl
FOR /r %pathLocal% %%g IN (*.txt *.zip) DO ECHO put %%~nxg>> comandosAEjecutar.tpl

如果pathLocal包含空格,您也应该引用它。