40

setlocalバッチファイルでどのように使用しますか?私はスクリプトを学んでいるところですが、非常に簡単な言葉で説明してもらいたいと思います。

停止して、スクリプトにステートメントが< was unexpected at this timeないことと関係がある可能性があると言うスクリプトがあります。setlocal

4

3 に答える 3

27

あなたは最初の行を作ります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への直接リンク

于 2012-12-04T13:46:10.623 に答える
10

次のコードを想定します。

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!

出力が何であるかを推測します...

于 2012-12-04T16:40:50.180 に答える