0

次のコードがあります。

@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

ECHO を実行すると、\\red\C\pc\pc.com\serv\down\bol のような正しいパスが表示されたので、変数「pathLocal」が正しく設定されていることはわかっています。

問題は、次の 2 行が変数をパスとして解釈していないことです。そのディレクトリに .txt ファイルと .zip ファイルがある場合、結果が生成されないためです。

4

1 に答える 1

2

あなたの問題は、パスローカル変数が括弧内にあることだと思います。 /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
于 2012-12-10T21:18:54.753 に答える