| @ECHO off | 
 | REM Copyright 2014 The Flutter Authors. All rights reserved. | 
 | REM Use of this source code is governed by a BSD-style license that can be | 
 | REM found in the LICENSE file. | 
 |  | 
 | REM ---------------------------------- NOTE ---------------------------------- | 
 | REM | 
 | REM Please keep the logic in this file consistent with the logic in the | 
 | REM `dart` script in the same directory to ensure that Flutter & Dart continue to | 
 | REM work across all platforms! | 
 | REM | 
 | REM -------------------------------------------------------------------------- | 
 |  | 
 | SETLOCAL ENABLEDELAYEDEXPANSION | 
 |  | 
 | FOR %%i IN ("%~dp0..") DO SET FLUTTER_ROOT=%%~fi | 
 |  | 
 | REM Include shared scripts in shared.bat | 
 | SET shared_bin=%FLUTTER_ROOT%/bin/internal/shared.bat | 
 | CALL "%shared_bin%" | 
 |  | 
 | SET cache_dir=%FLUTTER_ROOT%\bin\cache | 
 | SET dart_sdk_path=%cache_dir%\dart-sdk | 
 | SET dart=%dart_sdk_path%\bin\dart.exe | 
 |  | 
 | REM Chaining the call to 'dart' and 'exit' with an ampersand ensures that | 
 | REM Windows reads both commands into memory once before executing them. This | 
 | REM avoids nasty errors that may otherwise occur when the dart command (e.g. as | 
 | REM part of 'flutter upgrade') modifies this batch script while it is executing. | 
 | REM | 
 | REM Do not use the CALL command in the next line to execute Dart. CALL causes | 
 | REM Windows to re-read the line from disk after the CALL command has finished | 
 | REM regardless of the ampersand chain. | 
 | "%dart%" %* & exit /B !ERRORLEVEL! | 
 |  | 
 | :final_exit | 
 | EXIT /B %exit_code% |