setlocal
バッチファイルでどのように使用しますか?私はスクリプトを学んでいるところですが、非常に簡単な言葉で説明してもらいたいと思います。
停止して、スクリプトにステートメントが< was unexpected at this time
ないことと関係がある可能性があると言うスクリプトがあります。setlocal
setlocal
バッチファイルでどのように使用しますか?私はスクリプトを学んでいるところですが、非常に簡単な言葉で説明してもらいたいと思います。
停止して、スクリプトにステートメントが< was unexpected at this time
ないことと関係がある可能性があると言うスクリプトがあります。setlocal
あなたは最初の行を作りますSETLOCAL
。この例は、以下のリンクされた記事からのものです。
rem *******Begin Comment**************
rem This program starts the superapp batch program on the network,
rem directs the output to a file, and displays the file
rem in Notepad.
rem *******End Comment**************
@echo off
setlocal
path=g:\programs\superapp;%path%
call superapp>c:\superapp.out
endlocal
start notepad c:\superapp.out
の最も頻繁な使用法はSETLOCAL
、コマンド拡張機能をオンにして、変数の遅延展開を許可することです。
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
詳細については、 Microsoft TechNetのコマンド ライン リファレンスSETLOCAL
を参照してください。
Setlocalへの直接リンク
次のコードを想定します。
If "%getOption%" equ "yes" (
set /P option=Enter option:
echo Option read: %option%
)
IFコマンドが解析されるときに(実行される前に)%option%値が一度だけ置き換えられるため、前のコードは機能しません。SET / Pコマンドが変数値を変更するまで、変数値の展開を「遅らせる」必要があります。
setlocal EnableDelayedExpansion
If "%getOption%" equ "yes" (
set /P option=Enter option:
echo Option read: !option!
)
これをチェックして:
set var=Before
set var=After & echo Normal: %var% Delayed: !var!
出力が何であるかを推測します...