bpo-42336: Improve PCbuild batch files (GH-23275)

diff --git a/PCbuild/rt.bat b/PCbuild/rt.bat
index 59f757c..29813c5 100644
--- a/PCbuild/rt.bat
+++ b/PCbuild/rt.bat
@@ -6,8 +6,9 @@
 rem -q   "quick" -- normally the tests are run twice, the first time
 rem      after deleting all the .pyc files reachable from Lib/.
 rem      -q runs the tests just once, and without deleting .pyc files.
-rem -x64 Run the 64-bit build of python (or python_d if -d was specified)
-rem      When omitted, uses %PREFIX% if set or the 32-bit build
+rem -p <Win32|x64|ARM|ARM64> or -win32, -x64, -arm32, -arm64
+rem      Run the specified architecture of python (or python_d if -d
+rem      was specified). If omitted, uses %PREFIX% if set or 64-bit.
 rem All leading instances of these switches are shifted off, and
 rem whatever remains (up to 9 arguments) is passed to regrtest.py.
 rem For example,
@@ -38,12 +39,14 @@
 if "%1"=="-O" (set dashO=-O)     & shift & goto CheckOpts
 if "%1"=="-q" (set qmode=yes)    & shift & goto CheckOpts
 if "%1"=="-d" (set suffix=_d)    & shift & goto CheckOpts
+if "%1"=="-win32" (set prefix=%pcbuild%win32) & shift & goto CheckOpts
 if "%1"=="-x64" (set prefix=%pcbuild%amd64) & shift & goto CheckOpts
 if "%1"=="-arm64" (set prefix=%pcbuild%arm64) & shift & goto CheckOpts
 if "%1"=="-arm32" (set prefix=%pcbuild%arm32) & shift & goto CheckOpts
+if "%1"=="-p" (call :SetPlatform %~2) & shift & shift & goto CheckOpts
 if NOT "%1"=="" (set regrtestargs=%regrtestargs% %1) & shift & goto CheckOpts
 
-if not defined prefix set prefix=%pcbuild%win32
+if not defined prefix set prefix=%pcbuild%amd64
 set exe=%prefix%\python%suffix%.exe
 set cmd="%exe%" %dashO% -u -Wd -E -bb -m test %regrtestargs%
 if defined qmode goto Qmode
@@ -60,6 +63,15 @@
 
 echo About to run again without deleting .pyc first:
 pause
+goto Qmode
+
+:SetPlatform
+if /I %1 EQU Win32 (set prefix=%pcbuild%win32) & exit /B 0
+if /I %1 EQU x64 (set prefix=%pcbuild%amd64) & exit /B 0
+if /I %1 EQU ARM64 (set prefix=%pcbuild%arm64) & exit /B 0
+if /I %1 EQU ARM (set prefix=%pcbuild%arm32) & exit /B 0
+echo Invalid platform "%1"
+exit /B 1
 
 :Qmode
 echo on