diff --git a/bootstrap.bat b/bootstrap.bat
index ca68f5d..57f89fe 100644
--- a/bootstrap.bat
+++ b/bootstrap.bat
@@ -50,7 +50,7 @@
 
 :: ~dp0 is the batchism for the directory in which a .bat file resides.
 if "%PW_CHECKOUT_ROOT%"=="" ^
-set "PW_ROOT=%~dp0" &^
+set "PW_ROOT=%~dp0." &^
 goto select_python
 
 :: Since PW_CHECKOUT_ROOT is set, use it.
@@ -108,10 +108,11 @@
 :: Without the trailing slash in %PW_ROOT%/, batch combines that token with
 :: the --shell-file argument.
 call "%python%" "%PW_ROOT%\pw_env_setup\py\pw_env_setup\env_setup.py" ^
-    --pw-root "%PW_ROOT%/" ^
+    --pw-root "%PW_ROOT%" ^
     --shell-file "%shell_file%" ^
     --install-dir "%_PW_ACTUAL_ENVIRONMENT_ROOT%" ^
-    --use-pigweed-defaults
+    --use-pigweed-defaults ^
+    --project-root "%PW_PROJECT_ROOT%"
 goto activate_shell
 
 :skip_bootstrap
diff --git a/pw_env_setup/py/pw_env_setup/env_setup.py b/pw_env_setup/py/pw_env_setup/env_setup.py
index 328e8c4..c03bd43 100755
--- a/pw_env_setup/py/pw_env_setup/env_setup.py
+++ b/pw_env_setup/py/pw_env_setup/env_setup.py
@@ -73,6 +73,7 @@
 from pw_env_setup import environment
 from pw_env_setup import spinner
 from pw_env_setup import virtualenv_setup
+from pw_env_setup import windows_env_start
 
 
 # TODO(pwbug/67, pwbug/68) switch to shutil.which().
@@ -251,7 +252,10 @@
     def setup(self):
         """Runs each of the env_setup steps."""
 
-        enable_colors()
+        if os.name == 'nt':
+            windows_env_start.print_banner(bootstrap=True, no_shell_file=False)
+        else:
+            enable_colors()
 
         steps = [
             ('CIPD package manager', self.cipd),
diff --git a/pw_env_setup/py/pw_env_setup/windows_env_start.py b/pw_env_setup/py/pw_env_setup/windows_env_start.py
index dc8c8f1..62770a8 100644
--- a/pw_env_setup/py/pw_env_setup/windows_env_start.py
+++ b/pw_env_setup/py/pw_env_setup/windows_env_start.py
@@ -37,22 +37,14 @@
 '''
 
 
-def main():
-    """Script entry point."""
-    if os.name != 'nt':
-        return 1
-
-    parser = argparse.ArgumentParser()
-    parser.add_argument('--bootstrap', action='store_true')
-    parser.add_argument('--no-shell-file', action='store_true')
-    args = parser.parse_args()
-
+def print_banner(bootstrap, no_shell_file):
+    """Print the Pigweed or project-specific banner"""
     enable_colors()
 
     print(Color.green('\n  WELCOME TO...'))
     print(Color.magenta(_PIGWEED_BANNER))
 
-    if args.bootstrap:
+    if bootstrap:
         print(
             Color.green('\n  BOOTSTRAP! Bootstrap may take a few minutes; '
                         'please be patient'))
@@ -65,7 +57,7 @@
                 '\n  ACTIVATOR! This sets your console environment variables.\n'
             ))
 
-        if args.no_shell_file:
+        if no_shell_file:
             print(Color.bold_red('Error!\n'))
             print(
                 Color.red('  Your Pigweed environment does not seem to be'
@@ -75,5 +67,20 @@
     return 0
 
 
+def parse():
+    """Parse command-line arguments."""
+    parser = argparse.ArgumentParser()
+    parser.add_argument('--bootstrap', action='store_true')
+    parser.add_argument('--no-shell-file', action='store_true')
+    return parser.parse_args()
+
+
+def main():
+    """Script entry point."""
+    if os.name != 'nt':
+        return 1
+    return print_banner(**vars(parse()))
+
+
 if __name__ == '__main__':
     sys.exit(main())
