すべてのユーザー入力を基本的にチェックして、次のアプローチを試してください。
@ECHO OFF
SETLOCAL EnableExtensions
:inputServer
set "serial="
set /p "serial=Enter Serial: "
if not defined serial goto :endlocal
pushd "\\%serial%\C$\"
if errorlevel 1 (
echo wrong server name "\\%serial%"
goto :inputServer
)
:inputUser
set "_username="
set /p "_username=Enter Username: "
if not defined _username goto :endstack
cd "\users\%_username%\appdata\roaming\Microsoft\Windows\Recent"
if errorlevel 1 (
echo wrong user name "%_username%" or path
echo "\\%serial%\C$\users\%_username%\appdata\roaming\Microsoft\Windows\Recent"
goto :inputUser
)
dir AutomaticDestinations\*.*
dir CustomDestinations\*.*
:endstack
popd
:endlocal
pause
デバッグされる前dir
に置き換えます。del /Q
PUSHD
-POPD
ペアのリソース:
UNC
パスが指定されるPUSHD
と、一時的なドライブ マップが作成され、その新しいドライブが使用されます。一時的なドライブ文字はアルファベットの逆順に割り当てられるため、空いている場合Z:
は最初に使用されます。