if..else がネストされたサブルーチンを書きました 残念ながら、「ELSE」の前後でコードが実行される理由がわかりません (!!) 何時間も読みましたが、エラーは見つかりませんでした。 。 手伝って頂けますか?コード(多くのエコーデバッグを含む)と出力をコピーしました
これは私の小さなコードです:
setlocal
set debug=echo
%debug% # %~0: %*
for /f "usebackq tokens=1-3 delims=;" %%a in ('"%*"') do (set dir=%%~a& set own=%%~b)
%debug% - dir="!dir!"
%debug% - own="!own!"
%debug% -+ analisi cartella: "!dir!"
if exist "!dir!" (
%debug% x la cartella esiste già, passo oltre
) else (
%debug% - la cartella non esite quindi la creo
mkdir "!dir!" || echo [E] non sono riuscito a creare la cartella&& echo %err3_txt% [dir:!dir!] 1>&2 && exit %err3_id%
)
%debug% -+ analisi proprietario: "!own!"
for /f "usebackq tokens=1,2 delims=\" %%x in ('"!own!\\"') do (set own1=%%~x& set own2=%%~y)
if [!own!] equ [!own:~0,1! ] (
%debug% x il proprietario non è stato specificato quindi non va cambiato, passo oltre
) else (
%debug% - own1: "!own1!"
%debug% - own2: "!own2!"
if [%own2%] equ [] (
%debug% - il proprietario ha un dominio implicito, lo calcolo
set ownn=%own1%
set ownd=%userdomain%
) else (
%debug% - il proprietario ha un dominio esplicitamente indicato
set ownd="input non valido"
if /i [!own1!] equ [L] set ownd=%computername%
if /i [!own1!] equ [D] set ownd=%userdomain%
if "%ownd%" equ "input non valido" (echo [E] il dominio esplitamente indicato non è riconosciuto: !own1!& echo %err4_txt% [dir:!dir!][own:!own!] 1>&2 & exit %err4_id%)
)
%debug% - la configurazione prevede l'impostazione del seguente proprietario: !ownd!\!ownn!
)
%debug% x done.
これは私の出力です:
# :CSG_check_fs: C:; ;
- dir="C:"
- own=" "
-+ analisi cartella: "C:"
x la cartella esiste giÓ, passo oltre
-+ analisi proprietario: " "
x il proprietario non Þ stato specificato quindi non va cambiato, passo oltre
- own1: " "
- own2: ""
- il proprietario ha un dominio implicito, lo calcolo
- la configurazione prevede l'impostazione del seguente proprietario: CSG\
x done.
特に、else 句の前後に適切なコマンドを実行しましょう!!! どうして???このことは信じられないほどです!! それとも私は疲れすぎていますか?