Advertisement
BrainWaveCC

BatchDOS.BAT

Mar 18th, 2025 (edited)
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 3.70 KB | Source Code | 0 0
  1. @REM - BatchDOS.BAT (18 Mar 2025 // 19 Mar 2025): A DOS-like OS environment via batch scripting
  2. @REM - Original Message: https://www.reddit.com/r/Batch/comments/1jdzn4i/i_need_help_fixing_my_script/
  3. @ECHO OFF
  4.  
  5.  rem -- Initialize Environment Variables
  6. :Variables
  7.  SETLOCAL
  8.  SET "#DOSNAME=Batch DOS"
  9.  SET "#PROMPT=MAD OS> "
  10.  SET "#VER=v1.1.0.050"
  11.  SET "#RETURN=ECHO: & GOTO :GetCommand"
  12.  SET "#SLOW_RETURN=TIMEOUT 10 & %#RETURN%"
  13. rem -- Put all valid command in the following variable, as you make them -- without their - or / delimiters
  14.  SET "#ALL_COMMANDS=HELP H MOVE LIST VARS VER EXIT"
  15.  
  16.  
  17. :GetCommand -- Ask for a command in our "shell"
  18.  TITLE [%#DOSNAME% %#VER%] >NUL 2>NUL
  19.  SET /P "#USER_INPUT=%#PROMPT%"
  20. rem -- Check for valid parameters with - or / according to the parameter list
  21.  FOR /F "TOKENS=1-3*" %%U IN ('ECHO %#USER_INPUT%') DO FOR %%C IN (%#ALL_COMMANDS%) DO FOR %%D IN (/ -) DO IF /I "%%~U"=="%%~D%%~C" (
  22.      rem -- For valid commands, create a variable with the command removed, and jump to appropriate subroutine
  23.      SET "#CMD=%%U"
  24.      SET "#PARAM1=%%V"
  25.      SET "#PARAM2=%%W"
  26.      SET "#PARAMS=%%V %%W %%X"
  27.      ECHO:
  28.      GOTO :Get%%~C
  29.  )
  30.  ECHO:
  31.  ECHO Unknown command: %#USER_INPUT%
  32.  ECHO:
  33.  ECHO Type /help or /h for assistance
  34.  %#RETURN%
  35.  
  36.  
  37. :GetExit -- Reset Environment Variables and Exit Batch File
  38.  TITLE Command Prompt >NUL 2>NUL
  39.  ECHO Thanks for using the %#DOSNAME% Environment
  40.  ECHO:
  41.  ENDLOCAL
  42.  EXIT /B
  43.  
  44.  
  45. :GetHelp -- Display Syntax Help if Required/Requested
  46. :GetH ----- Display Syntax Help if Required/Requested (Abbreviated Option)
  47.  ECHO %#DOSNAME% Environment Help
  48.  ECHO:
  49.  ECHO    YOU TYPED: %#USER_INPUT%
  50.  ECHO:
  51.  ECHO   CMD SYNTAX: ^</move^> ^<source^> ^<dest^>
  52.  ECHO               ^</list^> [folder^|file]
  53.  ECHO               ^</vars^> [partial variable] [partial variable] ...
  54.  ECHO               ^</exit^>
  55.  ECHO               ^</ver^>
  56.  ECHO               ^</help^|/h^>
  57.  ECHO:
  58.  ECHO  CMD OPTIONS:
  59.  ECHO    /HELP .... Display this help message
  60.  ECHO    /VARS .... Display all environment variables, or those starting with provided text
  61.  ECHO    /VER ..... Display %#DOSNAME% environment version info
  62.  ECHO    /LIST .... Displays a directory listing
  63.  ECHO    /MOVE .... Moves a file or folder (not fully implemented)
  64.  ECHO    /EXIT .... Exits the %#DOSNAME% environment
  65.  ECHO:
  66.  ECHO  SYNTAX EXAMPLES:
  67.  ECHO    /HELP
  68.  ECHO    /VER
  69.  ECHO    /VARS
  70.  ECHO    /VARS user pro #
  71.  ECHO    /LIST
  72.  ECHO    /LIST C:\
  73.  ECHO    /LIST %WinDir%
  74.  ECHO    /MOVE "C:\Temp\Here" "D:\Temp\There"
  75.  ECHO    /EXIT
  76.  ECHO:
  77.  ECHO  USAGE NOTES:
  78.  ECHO    * Parameters surrounded by ^<^> are mandatory.
  79.  ECHO    * Parameters surrounded by [] are optional.
  80.  ECHO    * Options are case-insensitive, and can be prefaced by "-" or "/".
  81.  %#RETURN%
  82.  
  83.  
  84. :GetMove -- Move Files (Implementation Incomplete)
  85.  SET "#INVALID="
  86.  ECHO Moving the following files and/or folders:
  87.  ECHO  -- Source ........ %#PARAM1%
  88.  ECHO  -- Destination ... %#PARAM2%
  89.  ECHO:
  90.  IF "%#PARAM1%"=="" SET "#INVALID=TRUE" && ECHO ERROR: Missing source file/folder
  91.  IF "%#PARAM2%"=="" SET "#INVALID=TRUE" && ECHO ERROR: Missing destination file/folder
  92.  IF DEFINED #INVALID %#RETURN%
  93. rem -- Use "IF EXISTS" to verify source and possibly destination
  94. rem -- MOVE %#PARAM1% %#PARAM2%
  95.  %#SLOW_RETURN%
  96.  
  97.  
  98. :GetVars -- Display Current Environment Variables
  99.  ECHO Current environment variables starting with: %#PARAMS%
  100.  ECHO:
  101.  IF "%#PARAM1%"=="" ( SET & ECHO: ) ELSE ( FOR %%V IN (%#PARAMS%) DO SET %%~V & ECHO: )
  102.  %#SLOW_RETURN%
  103.  
  104.  
  105. :GetList -- Get directory listing
  106.  ECHO Getting Directory of: %#PARAMS%
  107.  DIR %#PARAMS%
  108.  %#SLOW_RETURN%
  109.  
  110.  
  111. :GetVer -- Display Current Version of DOS-like Environment
  112.  ECHO %#DOSNAME% Environment %#VER%
  113.  %#RETURN%
  114.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement