cmd update:
* add 'help' command: list all available commands plus show a short description
* update english and german language resource files
Modified: trunk/reactos/subsys/system/cmd/De.rc
Modified: trunk/reactos/subsys/system/cmd/En.rc
Modified: trunk/reactos/subsys/system/cmd/cmd.c
Modified: trunk/reactos/subsys/system/cmd/cmd.h
Modified: trunk/reactos/subsys/system/cmd/cmdtable.c
Modified: trunk/reactos/subsys/system/cmd/internal.c
Modified: trunk/reactos/subsys/system/cmd/resource.h

Modified: trunk/reactos/subsys/system/cmd/De.rc
--- trunk/reactos/subsys/system/cmd/De.rc	2005-06-06 19:34:36 UTC (rev 15819)
+++ trunk/reactos/subsys/system/cmd/De.rc	2005-06-06 20:05:14 UTC (rev 15820)
@@ -1,7 +1,7 @@
 #include "resource.h"
 /*
- *  German language file by Klemens Friedl 2005-06-03
- *  Note: translation process is not finished;
+ *  German language file by Klemens Friedl <frik85> 2005-06-03
+ *  Update: frik85 2005-06-06
  */
 
 LANGUAGE LANG_GERMAN, SUBLANG_DEFAULT
@@ -112,7 +112,7 @@
 6    6    Yellow     14   E    Bright Yellow\n\
 7    7    White      15   F    Bright White"
 
-STRING_COPY_HELP1,  " %s ueberschreiben (Yes/No/All)? "
+STRING_COPY_HELP1,  " %s ueberschreiben (Ja/Nein/Alle)? "
 
 STRING_COPY_HELP2, "Kopiert eine oder mehrere Dateien an eine andere Position.\n\n\
 COPY [/V][/Y|/-Y][/A|/B] Quelle [/A|/B]\n\
@@ -147,10 +147,10 @@
 DELETE [/N /P /T /Q /W /Y /Z] Dateinamen ...\n\
 ERASE [/N /P /T /Q /W /Y /Z] Dateinamen ...\n\n\
   file  Geben Sie die Dateinamen an welche Sie loeschen moechten\n\n\
-  /N    Nothing.\n\
+  /N    Nichts.\n\
   /P    Fordert Sie vor dem Loeschen jeder Datei zur Bestaetigung auf.\n\
   /T    Zeigt die Anzahl der geloeschten Dateien und deren vorher belegter Speicherplatzbedarf an.\n\
-  /Q    Quiet.\n\
+  /Q    Beenden.\n\
   /W    Sicheres Loeschen. Dateien werden mit Zufallszahlen ueberschrieben bevor sie geloescht werden.\n\
   /Y    Loescht alles (*.*) ohne Vorwarnung.\n\
   /Z    Loescht versteckte, mit nur leserechten und Systemdateien.\n"
@@ -201,121 +201,123 @@
 
 
 
-STRING_DIR_HELP2, " Volume in Laufwerk %c heisst %s"
-STRING_DIR_HELP3, " Volume in Laufwerk %c hat keinen Namen"
-STRING_DIR_HELP4, " Volume Serial Number ist %04X-%04X\n"
+STRING_DIR_HELP2, " Datentraeger in Laufwerk %c ist %s\n"
+STRING_DIR_HELP3, " Datentraeger in Laufwerk %c hat keinen Namen\n"
+STRING_DIR_HELP4, " Datentraeger-Seriennummer ist %04X-%04X\n"
 STRING_DIR_HELP5, "\n     Gelistete Dateien:\n%16i Datei(en)% 14s bytes\n"
 STRING_DIR_HELP6, "%16i VErzeichnis(se)% 15s bytes\n"
 STRING_DIR_HELP7, "\n Verzeichnisse %s\n\n"
 STRING_DIR_HELP8, "%16i Datei(en)% 14s bytes\n"
 
-STRING_DIRSTACK_HELP1, "Stores the current directory for use by the POPD command, then\n\
-changes to the specified directory.\n\n\
+STRING_DIRSTACK_HELP1, "Speichert das aktuelle Verzeichnis fuer den POPD Befehl, und\n\
+wechselt dann zu den festgelegten Verzeichnis.\n\n\
 PUSHD [path | ..]\n\n\
-  path        Specifies the directory to make the current directory"
+  path        Legt den Verzeichnis fest su dem gewechselt werden soll"
 
-STRING_DIRSTACK_HELP2, "Changes to the directory stored by the PUSHD command.\n\nPOPD"
+STRING_DIRSTACK_HELP2, "Wechselt zu dem Verzeichnis welches vom PUSHD Befehl gespeichert wurde.\n\nPOPD"
 
-STRING_DIRSTACK_HELP3, "Prints the contents of the directory stack.\n\nDIRS"
+STRING_DIRSTACK_HELP3, "Druckt den Inhalt des Verzeichnis-Stacks.\n\nDIRS"
 
-STRING_DIRSTACK_HELP4, "Directory stack empty"
+STRING_DIRSTACK_HELP4, "Verzeichnis-Stack ist leer"
 
-STRING_ECHO_HELP1,  "Display a messages without trailing carridge return and line feed.\n\n\
+STRING_ECHO_HELP1,  "Sendet eine Nachricht ohne den Zeilenvorschub und Wagenruecklauf zu betaetigen.\n\n\
   ECHOS message"
 
-STRING_ECHO_HELP2,  "Displays a message to the standard error.\n\n\
-  ECHOERR message\n\
-  ECHOERR.           prints an empty line"
+STRING_ECHO_HELP2,  "Sendet eine Nachricht zur Standard Fehlerausgabe.\n\n\
+  ECHOERR Nachricht\n\
+  ECHOERR.           gibt eine Leerzeile aus"
 
-STRING_ECHO_HELP3, "Prints a messages to standard error output without trailing carridge return and line feed.\n\n\
-  ECHOSERR message"
+STRING_ECHO_HELP3, "Sendet eine Nachricht zur Standard Fehlerausgabe ohne den Zeilenvorschub und Wagenruecklauf zu betaetigen.\n\n\
+  ECHOSERR Nachricht"
 
-STRING_ECHO_HELP4, "Displays a message or switches command echoing on or off.\n\n\
+STRING_ECHO_HELP4, "Zeigt Meldungen an oder schaltet die Befehlsanzeige ein ""ON"" oder aus ""OFF"".\n\n\
   ECHO [ON | OFF]\n\
-  ECHO [message]\n\
-  ECHO.             prints an empty line\n\n\
-Type ECHO without a parameter to display the current ECHO setting."
+  ECHO [Nachricht]\n\
+  ECHO.             gibt eine Leerzeile aus\n\n\
+ECHO ohne Parameter zeigt die aktuelle Einstellung der Befehlsanzeige an."
 
-STRING_ECHO_HELP5, "ECHO is %s\n"
+STRING_ECHO_HELP5, "ECHO ist %s\n"
 
-STRING_EXIT_HELP, "Exits the command line interpreter.\n\nEXIT"
+STRING_EXIT_HELP, "Beendet den Befehlsinterpreter CMD.EXE oder die aktuelle Batchdatei.\n\nEXIT"
 
-STRING_FOR_HELP1, "Runs a specified command for each file in a set of files\n\n\
-FOR %variable IN (set) DO command [parameters]\n\n\
-  %variable  Specifies a replaceable parameter.\n\
-  (set)      Specifies a set of one or more files. Wildcards may be used.\n\
-  command    Specifies the command to carry out for each file.\n\
-  parameters Specifies parameters or switches for the specified command.\n\n\
-To use the FOR command in a batch program, specify %%variable instead of\n\
-%variable."
+STRING_FOR_HELP1, "Fuehrt einen Befehl fuer jede einzelne Datei fuer einen Satz von Dateien aus.\n\n\
+FOR %Variable IN (Satz) DO Befehl [Parameter]\n\n\
+  %variable  Ein ersetzbarer Parameter bestehend aus einem einzelnen\n\
+              Buchstaben.\n\
+  (Satz)     Ein Satz von mindestens einer Datei. Platzhalter sind zulaessig.\n\
+  Befehl    Befehl, der fuer jede Datei ausgefuehrt werden soll.\n\
+  Parameter Parameter und Optionen fuer den angegebenen Befehl.\n\n\
+Um den FOR-Befehl in einem Batchprogramm zu verwenden, geben Sie %%Variable\n\
+statt %Variable an."
 
-STRING_FREE_HELP1, "\nVolume in drive %s is %-11s\n\
- Serial number is %s\n\
-  %16s bytes total disk space\n\
-  %16s bytes used\n\
-  %16s bytes free\n"
+STRING_FREE_HELP1, "\nVolume in Laufwerk %s ist %-11s\n\
+ Volume-Seriennummer: %s\n\
+  %16s bytes Speicherkapazitaet\n\
+  %16s bytes belegter Speicher\n\
+  %16s bytes freier Speicher\n"
 
-STRING_FREE_HELP2, "Displays drive information.\n\nFREE [drive: ...]"
+STRING_FREE_HELP2, "Zeigt die Volumesinformationen an.\n\nFREE [Laufwerk: ...]"
 
-STRING_IF_HELP1, "Performs conditional processing in batch programs.\n\n\
-  IF [NOT] ERRORLEVEL number command\n\
-  IF [NOT] string1==string2 command\n\
-  IF [NOT] EXIST filename command\n\
-  IF [NOT] DEFINED variable command\n\n\
-NOT               Specifies that CMD should carry out the command only if\n\
-                  the condition is false\n\
-ERRORLEVEL number Specifies a true condition if the last program run returned\n\
-                  an exit code equal or greater than the number specified.\n\
-command           Specifies the command to carry out if the condition is met.\n\
-string1==string2  Specifies a true condition if the specified text strings\n\
-                  match.\n\
-EXIST filename    Specifies a true condition if the specified filename exists.\n\
-DEFINED variable  Specifies a true condition if the specified variable is\n\
-                  defined."
+STRING_IF_HELP1, "Verarbeitet Ausdruecke in einer Batchdatei abhaengig von Bedingungen.\n\n\
+  IF [NOT] ERRORLEVEL Nummer Befehl\n\
+  IF [NOT] variable1==variable2 Befehl\n\
+  IF [NOT] EXIST Dateiname Befehl\n\
+  IF [NOT] DEFINED variable Befehl\n\n\
+NOT               Befehl wird nur dann ausgefuehrt, wenn die Bedingung nicht\n\
+                  erfuellt wird\n\
+ERRORLEVEL number Bedingung ist erfuellt, wenn das zuletzt ausgefuehrte\n\
+                  Programm einen Code groesser oder gleich der Nummer zurueckgibt.\n\
+command           Gibt den Befehl an, der bei erfuellter Bedingung ausgefuehrt\n\
+                  werden soll.\n\
+variable1==variable2\n\
+                  Bedingung ist erfuellt, falls die Zeichenfolgen gleich sind.\n\
+EXIST Dateiname   Bedingung ist erfuellt, wenn die angegebene Datei existiert.\n\
+DEFINED variable  Bedingung ist erfuellt, wenn die angegebene Datei definiert\n\
+                  wurde."
 
-STRING_GOTO_HELP1,  "Directs CMD to a labeled line in a batch script.\n\n\
-GOTO label\n\n\
-  label  Specifies a text string used in a batch script as a label.\n\n\
-You type a label on a line by itself, beginning with a colon."
+STRING_GOTO_HELP1,  "Setzt die Ausfuehrung eines Batchprogramms an einer Marke fort.\n\n\
+GOTO Marke\n\n\
+  Marke  Definiert eine Zeichenfolge als Marke in einem Batchprogramm.\n\n\
+Marken stehen am Zeilenanfang mit einem vorangestellten Doppelpunkt."
 
-STRING_LABEL_HELP1, "Displays or changes drive label.\n\nLABEL [drive:][label]"
+STRING_LABEL_HELP1, "Erstellt, aendert oder loescht die Bezeichnung eines Volumes.\n\nLABEL [Laufwerk:][label]"
 
-STRING_LABEL_HELP2, "Volume in drive %c: is %s\n"
-STRING_LABEL_HELP3, "Volume in drive %c: has no label\n"
-STRING_LABEL_HELP4, "Volume Serial Number is %04X-%04X\n"
-STRING_LABEL_HELP5, "Drive label (11 Characters, ENTER if none)? "
+STRING_LABEL_HELP2, "Datentraeger im Laufwerk %c: ist %s\n"
+STRING_LABEL_HELP3, "Datentraeger im Laufwerk %c: hat keine Bezeichnung\n"
+STRING_LABEL_HELP4, "Datentraeger-Seriennummer: %04X-%04X\n"
+STRING_LABEL_HELP5, "Laufwerkbezeichnung (max. 11 Zeichen, ENTER fuer keine)? "
 
-STRING_LOCALE_HELP1, "Current time is"
+STRING_LOCALE_HELP1, "Aktuelle Zeit: "
 
-STRING_MKDIR_HELP,   "Creates a directory.\n\n\
-MKDIR [drive:]path\nMD [drive:]path"
+STRING_MKDIR_HELP,   "Erzeugt ein Verzeichnis.\n\n\
+MKDIR [Laufwerk:]Pfad\nMD [Laufwerk:]Pfad"
 
-STRING_MEMMORY_HELP1, "Displays the amount of system memory.\n\nMEMORY"
+STRING_MEMMORY_HELP1, "Zeigt die groesse des Systemspeicher an.\n\nMEMORY"
 
-STRING_MEMMORY_HELP2, "\n  %12s%% memory load.\n\n\
-  %13s bytes total physical RAM.\n\
-  %13s bytes available physical RAM.\n\n\
-  %13s bytes total page file.\n\
-  %13s bytes available page file.\n\n\
-  %13s bytes total virtual memory.\n\
-  %13s bytes available virtual memory.\n"
+STRING_MEMMORY_HELP2, "\n  %12s%% Speicher geladen.\n\n\
+  %13s bytes RAM (insgesamt)\n\
+  %13s bytes verfuegbarer RAM\n\n\
+  %13s bytes Auslagerungsdatei (insgesamt)\n\
+  %13s bytes verfuegbare Auslagerungsdatei\n\n\
+  %13s bytes Virtueller Speicher (insgesamt)\n\
+  %13s bytes verfuegbarer Virtueller Speicher\n"
 
-STRING_MISC_HELP1, "Press a key to continue...\n"
+STRING_MISC_HELP1, "Druecken Sie eine beliebige Taste . . .\n"
 
-STRING_MOVE_HELP1, "Overwrite %s (Yes/No/All)? "
+STRING_MOVE_HELP1, "Ueberschreiben %s (Ja/Nein/Alle)? "
 
-STRING_MOVE_HELP2, "Moves files and renames files and directories.\n\n\
-To move one or more files:\n\
-MOVE [/N][drive:][path]filename1[,...] destination\n\n\
-To rename a directory:\n\
-MOVE [/N][drive:][path]dirname1 dirname2\n\n\
-  [drive:][path]filename1  Specifies the location and name of the file\n\
-                           or files you want to move.\n\
-  /N                    Nothing. Do everything but move files or directories.\n\n\
-Current limitations:\n\
-  - You can't move a file or directory from one drive to another.\n"
+STRING_MOVE_HELP2, "Verschiebt Dateien und benennt Dateien und Verzeichnisse um.\n\n\
+Um eine oder mehrere Dateien zu verschieben:\n\
+MOVE [/N][Laufwerk:][Pfad]Dateiname1[,...] Ziel\n\n\
+Um ein Verzeichnis umzubenennen:\n\
+MOVE [/N][Laufwerk:][Pfad]Verzeichnis1 Verzeichnis2\n\n\
+  [Laufwerk:][Pfad]Datei1  Bezeichnet den Pfad und den Namen der zu\n\
+                           verschiebenden Datei(en).\n\
+  /N                 Nichts. Tut alles ausser Dateien/Verzeichnisse verschieben.\n\n\
+Derzeitige Einschraenkung:\n\
+Es ist noch nicht moeglich Objekte ueber die Laufwerksgrenzen hinaus zu verschieben.\n"
 
-STRING_MSGBOX_HELP, "display a message box and return user responce\n\n\
+STRING_MSGBOX_HELP, "Zeigt eine MessageBox und wartet auf eine Eingabe vom Benutzer.\n\n\
 MSGBOX type ['title'] prompt\n\n\
 type          button displayed\n\
               possible values are: OK, OKCANCEL,\n\
@@ -326,131 +328,131 @@
 YES  :  10    |  NO      :  11\n\
 OK   :  10    |  CANCEL  :  12\n"
 
-STRING_PATH_HELP1, "Displays or sets a search path for executable files.\n\n\
-PATH [[drive:]path[;...]]\nPATH ;\n\n\
-Type PATH ; to clear all search-path settings and direct the command shell\n\
-to search only in the current directory.\n\
-Type PATH without parameters to display the current path.\n"
+STRING_PATH_HELP1, "Legt den Suchpfad fuer ausfuehrbare Dateien fest oder zeigt diesen an.\n\n\
+PATH [[Laufwerk:]Pfad[;...]]\nPATH ;\n\n\
+  PATH ;    Loescht den Suchpfad und laesst CMD.EXE nur in dem aktuellen\n\
+            Verzeichnis suchen.\n\
+  PATH      Ohne Parameter zeigt den aktuellen Pfad an.\n"
 
-STRING_PROMPT_HELP1, "Changes the command prompt.\n\n\
-PROMPT [text]\n\n\
-  text    Specifies a new command prompt.\n\n\
-Prompt can be made up of normal characters and the following special codes:\n\n\
-  $A   & (Ampersand)\n\
-  $B   | (pipe)\n\
-  $C   ( (Left parenthesis)\n\
-  $D   Current date\n\
-  $E   Escape code (ASCII code 27)\n\
-  $F   ) (Right parenthesis)\n\
-  $G   > (greater-than sign)\n\
-  $H   Backspace (erases previous character)\n\
-  $L   < (less-than sign)\n\
-  $N   Current drive\n\
-  $P   Current drive and path\n\
-  $Q   = (equal sign)\n\
-  $T   Current time\n\
-  $V   OS version number\n\
+STRING_PROMPT_HELP1, "Aendert die Eingabeaufforderung.\n\n\
+PROMPT [Text]\n\n\
+  Text    Bezeichnet die neue Eingabeaufforderung.\n\n\
+Sie kann aus normalen Zeichen und folgenden Sonderzeichen bestehen:\n\n\
+  $A   & (Kaufmaennisches Und)\n\
+  $B   | (Verkettungszeichen oder pipe)\n\
+  $C   ( (Klammer auf)\n\
+  $D   Aktuelles Datum\n\
+  $E   Escapezeichen (ASCII-Code 27)\n\
+  $F   ) (Klammer zu)\n\
+  $G   > (Groesser-als-Zeichen)\n\
+  $H   Rueckschritt (loescht vorangehendes Zeichen)\n\
+  $L   < (Kleiner-als-Zeichen)\n\
+  $N   Aktuelles Laufwerk\n\
+  $P   Aktuelles Laufwerk und Pfad\n\
+  $Q   = (Gleichheitszeichen)\n\
+  $T   Aktuelle Zeit\n\
+  $V   Betriebssystem-Versionsnummer\n\
   $_   Carriage return and linefeed\n\
-  $$   $ (dollar sign)"
+  $$   $ (Dollarzeichen)"
 
-STRING_PAUSE_HELP1, "Stops the execution of a batch file and shows the following message:\n\
-'Press any key to continue...' or a user defined message.\n\n\
+STRING_PAUSE_HELP1, "Haelt die Ausfuehrung einer Batchdatei an und zeigt folgende Meldung an:\n\
+'Druecken Sie eine beliebige Taste . . .' or a user defined message.\n\n\
 PAUSE [message]"
 
-STRING_PROMPT_HELP2, "  $+   Displays the current depth of the directory stack"
+STRING_PROMPT_HELP2, "  $+   Zeigt die aktuelle Tiefe des Verzeichnis-Stacks an"
 
-STRING_PROMPT_HELP3, "\nType PROMPT without parameters to reset the prompt to the default setting."
+STRING_PROMPT_HELP3, "\n  'PROMPT'   setzt die Prompt auf die Standardwerte zurueck."
 
-STRING_REM_HELP, "Starts a comment line in a batch file.\n\nREM [Comment]"
+STRING_REM_HELP, "Leitet Kommentare in einer Batchdatei ein.\n\nREM [Kommentar]"
 
-STRING_RMDIR_HELP,   "Removes a directory.\n\n\
-RMDIR [drive:]path\nRD [drive:]path"
+STRING_RMDIR_HELP,   "Loescht ein Verzeichnis.\n\n\
+RMDIR [Laufwerk:]Pfad\nRD [Laufwerk:]Pfad"
 
-STRING_REN_HELP1, "Renames a file/directory or files/directories.\n\n\
-RENAME [/E /N /P /Q /S /T] old_name ... new_name\n\
-REN [/E /N /P /Q /S /T] old_name ... new_name\n\n\
-  /E    No error messages.\n\
-  /N    Nothing.\n\
-  /P    Prompts for confirmation before renaming each file.\n\
-        (Not implemented yet!)\n\
-  /Q    Quiet.\n\
-  /S    Rename subdirectories.\n\
-  /T    Display total number of renamed files.\n\n\
-Note that you cannot specify a new drive or path for your destination. Use\n\
-the MOVE command for that purpose."
+STRING_REN_HELP1, "Benennt Datei(en)/Verzeichnis(se) um.\n\n\
+RENAME [/E /N /P /Q /S /T] alter_Name ... neuer_Name\n\
+REN [/E /N /P /Q /S /T] alter_Name ... neuer_Name\n\n\
+  /E    keine Fehlermeldung.\n\
+  /N    Nichts.\n\
+  /P    Wartet vor jedem Umbennen-Vorgang auf eine Benutzereingabe\n\
+        (Noch nicht implementiert!)\n\
+  /Q    Beenden.\n\
+  /S    benennt Unterverzeichnisse um.\n\
+  /T    Zeigt die Anzahl der umbenannten Dateien an.\n\n\
+Nutzen Sie den 'move' Befehl falls Sie Objekte verschieben wollen.\n"
 
-STRING_REN_HELP2, "    %lu file renamed\n"
+STRING_REN_HELP2, "    %lu Datei umbennant\n"
 
-STRING_REN_HELP3, "    %lu files renamed\n"
+STRING_REN_HELP3, "    %lu Dateien umbennant\n"
 		 
-STRING_SHIFT_HELP, "Changes the position of replaceable parameters in a batch file.\n\n\
+STRING_SHIFT_HELP, "Veraendert die Position ersetzbarer Parameter in einem Batchprogramm.\n\n\
 SHIFT [DOWN]"
 
-STRING_SCREEN_HELP, "move cursor and optionally print text\n\n\
-SCREEN row col [text]\n\n\
-  row         row to wich move the cursor\n\
-  col         column to wich move the cursor"
+STRING_SCREEN_HELP, "Bewegt den Cursor und optional die Ausgabe\n\n\
+SCREEN Reihe Spalte [Text]\n\n\
+  Reihe         Reihe wohin der Curser bewegt werden soll\n\
+  Spalte        Spalte wohin der Curser bewegt werden soll"
 
-STRING_SET_HELP, "Displays, sets, or removes environment variables.\n\n\
-SET [variable[=][string]]\n\n\
-  variable  Specifies the environment-variable name.\n\
-  string    Specifies a series of characters to assign to the variable.\n\n\
-Type SET without parameters to display the current environment variables.\n"
+STRING_SET_HELP, "Setzt oder loescht Umgebungsvariablen fuer CMD.EXE, oder zeigt sie an.\n\n\
+SET [variable[=][Zeichenfolge]]\n\n\
+  Variable     Bezeichnet den Namen der Umgebungsvariablen.\n\
+  Zeichenfolge Eine Zeichenfolge, die der Variable zugewiesen werden soll.\n\n\
+Der Befehl SET ohne Parameter zeigt die aktuellen Umgebungsvariablen an.\n"
 
-STRING_START_HELP1, "Starts a command.\n\n\
-START command\n\n\
-  command     Specifies the command to run.\n\n\
-At the moment all commands are started asynchronously.\n"
+STRING_START_HELP1, "Startet einen Befehl.\n\n\
+START Befehl\n\n\
+  Befehl     Befehl welcher ausgefuehrt werden soll\n\n\
+Achtung: Derzeit werden alle Befehle asynchron ausgefuehrt.\n"
 
-STRING_TITLE_HELP, "Sets the window title for the command prompt window.\n\n\
+STRING_TITLE_HELP, "Legt den Fenstertitel fuer das Eingabeaufforderungsfenster fest.\n\n\
 TITLE [string]\n\n\
-string       Specifies the title for the command prompt window."
+  Zeichenfolge      Bezeichnet den Titel des Eingabeaufforderungsfensters."
 
-STRING_TIME_HELP1, "Displays or sets the system time.\n\n\
-TIME [/T][time]\n\n\
-  /T    display only\n\n\
-Type TIME with no parameters to display the current time setting and a prompt\n\
-for a new one.  Press ENTER to keep the same time."
+STRING_TIME_HELP1, "Stellt die Systemzeit oder zeigt sie an.\n\n\
+TIME [/T][Zeit]\n\n\
+  /T    nur anzeigen\n\n\
+TIME ohne Parameter zeigt die aktuelle Systemzeit an und fragt nach der neuen\n\
+Uhrzeit. Druecken Sie die EINGABETASTE, um die bisherige Zeit beizubehalten."
 
-STRING_TIME_HELP2, "Enter new time: "
+STRING_TIME_HELP2, "Geben Sie eine neue Zeit ein: "
 
-STRING_TIMER_HELP1, "Elapsed %d msecs\n"
+STRING_TIMER_HELP1, "Verstrichene %d Millisekunden\n"
 
-STRING_TIMER_HELP2, "Elapsed %02d%c%02d%c%02d%c%02d\n"
+STRING_TIMER_HELP2, "Verstrichene %02d%c%02d%c%02d%c%02d\n"
 
-STRING_TIMER_HELP3, "allow the use of ten stopwaches.\n\n\
+STRING_TIMER_HELP3, "Erlaubt die Benutzung von 10 Stopuhren.\n\n\
 TIMER  [ON|OFF] [/S] [/n] [/Fn]\n\n\
-  ON          set stopwach ON\n\
-  OFF         set stopwach OFF\n\
+  ON          schaltet die Stopuhr ein\n\
+  OFF         schaltet die Stopuhr aus\n\
   /S          Split time. Return stopwatch split\n\
               time without changing its value\n\
-  /n          Specifiy the stopwach number.\n\
+  /n          Anzahl der Stopuhren\n\
               Stopwaches avaliable are 0 to 9\n\
-              If it is not specified default is 1\n\
-  /Fn         Format for output\n\
-              n can be:\n\
+              Standardwert = 1\n\
+  /Fn         Ausgabeformatierung\n\
+              n kann 0 oder 1 sein:\n\
                     0    milliseconds\n\
                     1    hh%cmm%css%cdd\n\n\
-if none of ON, OFF or /S is specified the command\n\
-will toggle stopwach state\n\n"
+Falls nicht ON, OFF oder /S angegeben wurde wird\n\
+die Stopuhr ausgeschalten.\n\n"
 
-STRING_TYPE_HELP1, "Displays the contents of text files.\n\nTYPE [drive:][path]filename"
+STRING_TYPE_HELP1, "Zeigt den Inhalt einer oder mehrerer Textdateien an.\n\n\
+TYPE [Laufwerk:][Pfad]Dateiname"
 
 STRING_VERIFY_HELP1, "This command is just a dummy!!\n\
-Sets whether to verify that your files are written correctly to a\n\
-disk.\n\n\
+Legt fest, ob ueberwacht werden soll, ob Dateien korrekt auf den Datentraeger\n\
+geschrieben werden.\n\n\
 VERIFY [ON | OFF]\n\n\
-Type VERIFY without a parameter to display the current VERIFY setting."
+Der Befehl VERIFY ohne Parameter zeigt die aktuelle Einstellung von VERIFY an."
 
-STRING_VERIFY_HELP2, "VERIFY is %s.\n"
+STRING_VERIFY_HELP2, "VERIFY ist %s.\n"
 
-STRING_VERIFY_HELP3, "Must specify ON or OFF."
+STRING_VERIFY_HELP3, "VERIFY kann nur ON oder OFF sein"
 
 STRING_VERSION_HELP1, "Zeigt Shell Informationen an.\n\n\
 VER [/C][/R][/W]\n\n\
   /C  Zeigt die Credits an.\n\
   /R  Zeigt die Redistribution Information an.\n\
-  /W  Zeigt die Warranty Information an."
+  /W  Zeigt die Garantieerklaerung an."
 
 STRING_VERSION_HELP2, " kommt mit absolut keiner Garantie; fuer naehere\n\
  Informationen darueber tippen Sie: `ver /w'. Das ist eine freie Software,\n\
@@ -476,10 +478,10 @@
 
 STRING_VERSION_HELP7, "\nReactOS version programmiert von:\n"
 
-STRING_VOL_HELP1, " Volume in drive %c: is %s"
-STRING_VOL_HELP2, " Volume in drive %c: has no label"
-STRING_VOL_HELP3, " Volume Serial Number is %04X-%04X\n"
-STRING_VOL_HELP4, "Displays the disk volume label and serial number, if they exist.\n\nVOL [drive:]"
+STRING_VOL_HELP1, " Datentraeger im Laufwerk %c: ist %s"
+STRING_VOL_HELP2, " Datentraeger im Laufwerk %c: hat keine Bezeichnung"
+STRING_VOL_HELP3, " Datentraeger-Seriennummer: %04X-%04X\n"
+STRING_VOL_HELP4, "Zeigt die Laufwerksvolumebezeichnung und die Seriennummer an, falls diese existieren.\n\nVOL [drive:]"
 
 STRING_WINDOW_HELP1, "change console window aspect\n\n\
 WINDOW [/POS[=]left,top,width,heigth]\n\
@@ -500,82 +502,143 @@
 title         new title"
 
 
-STRING_CHOICE_OPTION,         "YN"
-STRING_COPY_OPTION,           "YNA"
+STRING_HELP1, "Uebersicht aller verfuegbaren Befehle und deren Kurzbeschreibung\n\n\
+  Befehl /?     Um naehere Informationen zu einem bestimmten Befehl\n\
+                zu erhalten.\n\n\
+?        Listet alle Befehle auf (ohne Erklarung).\n\
+ALIAS    Setzt, loescht oder zeigt alias.\n\
+ATTRIB   Zeigt Dateiattribute an bzw. aendert sie.\n\
+BEEP     Gibt einen beep-Ton durch den PC-Speaker aus.\n\
+CALL     Ruft eine Batchdatei aus einer anderen Batchdatei heraus auf.\n\
+CD       Zeigt den Namen des aktuellen Verzeichnisses an bzw. aendert diesen.\n\
+CHCP     Zeigt die aktive Codepagenummer an bzw. legt diese fest.\n\
+CHOICE   Wartet auf den Benutzer, welcher aus einer Auswahl eine Option\n\
+         waehlen muss.\n\
+CLS      Loescht den Bildschirminhalt.\n\
+CMD      Startet eine neue Instanz des Windows-Befehlsinterpreters.\n\
+COLOR    Legt die Hintergrund- und Vordergrundfarben fuer die Konsole fest.\n\
+COPY     Kopiert eine oder mehrere Dateien an eine andere Stelle.\n\
+DATE     Zeigt das Datum an bzw. legt dieses fest.\n\
+DELETE   Loescht eine oder mehrere Dateien.\n\
+DIR      Listet die Dateien und Unterverzeichnisse eines Verzeichnisses auf.\n\
+ECHO     Zeigt Meldungen an bzw. schaltet die Befehlsanzeige ein oder aus.\n\
+ERASE    Loescht eine oder mehrere Dateien.\n\
+EXIT     Beendet das Programm CMD.EXE (Befehlsinterpreter).\n\
+FOR      Fuehrt einen angegebenen Befehl fuer jede Datei in einem Dateiensatz\n\
+         aus.\n\
+FREE     Zeigt den (freien) Speicherplatz an.\n\
+GOTO     Setzt den Windows-Befehlsinterpreter auf eine markierte Zeile in\n\
+         einem Batchprogramm.\n\
+HELP     Zeigt Hilfeinformationen zu ReactOS-Befehlen an.\n\
+HISTORY  Listet alle Befehle auf welche sich im Speicher befinden.\n\
+IF       Verarbeitet Ausdruecke in einer Batchdatei abhaengig von Bedingungen.\n\
+LABEL    Erstellt, aendert oder loescht die Bezeichnung eines Volumes.\n\
+MD       Erstellt ein Verzeichnis\n\
+MKDIR    Erstellt ein Verzeichnis.\n\
+MOVE     Verschiebt ein oder mehrere Dateien von einem Verzeichnis in\n\
+         ein anderes.\n\
+PATH     Legt den Suchpfad fuer ausfuehrbare Dateien fest oder zeigt diesen an.\n\
+PAUSE    Haelt die Ausfuehrung einer Batchdatei an und zeigt eine Meldung an.\n\
+POPD     Wechselt zu dem Verzeichnis, das durch PUSHD gespeichert wurde.\n\
+PROMPT   Aendert die Eingabeaufforderung.\n\
+PUSHD    Speichert das aktuelle Verzeichnis, und wechselt dann zu einem\n\
+         anderen Verzeichnis.\n\
+RD       Entfernt ein Verzeichnis.\n\
+REM      Leitet Kommentare in einer Batchdatei.\n\
+REN      Benennt eine Datei bzw. Dateien um.\n\
+RENAME   Bennent eine Datei bzw. Dateien um.\n\
+RMDIR    Loescht ein Verzeichnis.\n\
+SCREEN   Bewegt den Cursor und optional die Ausgabe.\n\
+SET      Setzt oder loescht die Umgebungsvariablen bzw. zeigt sie an.\n\
+SHIFT    Veraendert die Position ersetzbarer Parameter in Batchdateien.\n"
+STRING_HELP2, "START    Startet ein eigenes Fenster, um ein bestimmtes Programm oder einen\n\
+         Befehl auszufuehren.\n\
+TIME     Zeigt die Systemzeit an bzw. legt sie fest.\n\
+TIMER    Erlaubt die Benutzung von bis zu 10 Stopuhren\n\
+TITLE    Legt den Fenstertitel fuer das Eingabeaufforderungsfenster fest.\n\
+TYPE     Zeigt den Inhalt einer Textdatei an.\n\
+VER      Zeigt die Windows-Version an.\n\
+VERIFY   Legt fest, ob ueberwacht werden soll, ob Dateien korrekt auf den\n\
+         Datentraeger geschrieben werden.\n\
+VOL      Zeigt die Datentraegervolumebezeichnung und die Seriennummer an."
 
 
-STRING_ALIAS_ERROR,          "Command line too long after alias expansion!\n"
-STRING_BATCH_ERROR,          "Error opening batch file\n"
-STRING_CHCP_ERROR1,          "Active code page: %u\n"
-STRING_CHCP_ERROR4,          "Invalid code page\n"
+STRING_CHOICE_OPTION,         "JN"
+STRING_COPY_OPTION,           "JNA"
+
+
+STRING_ALIAS_ERROR,          "Die Befehlszeile ist zu lange nach der Alias-Erweiterung!\n"
+STRING_BATCH_ERROR,          "Es trat ein Fehler auf, waehrend die batch-Datei geoeffnet wurde.\n"
+STRING_CHCP_ERROR1,          "Aktive Code-Page: %u\n"
+STRING_CHCP_ERROR4,          "ungueltige Code-Page\n"
 STRING_CHOICE_ERROR,         "Ungueltige Option. Erwartetes Format: /C[:]options"
 STRING_CHOICE_ERROR_TXT,     "Ungueltige Option. Erwartetes Format: /T[:]c,nn"
-STRING_CHOICE_ERROR_OPTION,  "Illegal Option: %s"
-STRING_CMD_ERROR1,           "Can't redirect input from file %s\n"
+STRING_CHOICE_ERROR_OPTION,  "Ungueltige Option: %s"
+STRING_CMD_ERROR1,           "Die Eingaben konnten nicht umgeleitet werden (von der Datei) %s\n"
 STRING_CMD_ERROR2,           "Error creating temporary file for pipe data\n"
-STRING_CMD_ERROR3,           "Can't redirect to file %s\n"
+STRING_CMD_ERROR3,           "%s kann nicht in die Datei umgeleitet werden \n"
 STRING_CMD_ERROR4,           "Running %s...\n"
 STRING_CMD_ERROR5,           "Running cmdexit.bat...\n"
-STRING_COLOR_ERROR1,         "Same colors error! (Background and foreground can't be the same color)"
-STRING_COLOR_ERROR2,         "error in color specification"
+STRING_COLOR_ERROR1,         "Fehler: Hinter- und Vordergrund koennen nicht die selben Farben haben!"
+STRING_COLOR_ERROR2,         "Fehler in der Farb-Angabe"
 STRING_COLOR_ERROR3,         "Farbe %x\n"
-STRING_COLOR_ERROR4,         "same colors error!"
-STRING_CONSOLE_ERROR,        "Unknown error: %d\n"
-STRING_COPY_ERROR1,          "Error: Cannot open source - %s!\n"
-STRING_COPY_ERROR2,          "Error: Can't copy onto itself!\n"
-STRING_COPY_ERROR3,          "Error writing destination!\n"
-STRING_COPY_ERROR4,          "Error: Not implemented yet!\n"
-STRING_DATE_ERROR,           "Invalid date."
-STRING_DEL_ERROR5,           "The file %s will be deleted! "
-STRING_DEL_ERROR6,           "Are you sure (Y/N)?"
-STRING_DEL_ERROR7,           "Deleting: %s\n"
-STRING_ERROR_ERROR1,         "Unknown error! Error code: 0x%lx\n"
-STRING_ERROR_ERROR2,         "Syntax error"
-STRING_FOR_ERROR1,           "'in' missing in for statement."
-STRING_FOR_ERROR2,           "no brackets found."
-STRING_FOR_ERROR3,           "'do' missing." 
-STRING_FOR_ERROR4,           "no command after 'do'."
+STRING_COLOR_ERROR4,         "Fehler: Die selben Farben!"
+STRING_CONSOLE_ERROR,        "Unbekannter Fehler: %d\n"
+STRING_COPY_ERROR1,          "Fehler: Quelle kann nicht geoeffnet werden - %s!\n"
+STRING_COPY_ERROR2,          "Fehler: Kann nicht ueber sich selbst kopiert werden.\n"
+STRING_COPY_ERROR3,          "Fehler Schreibziel!\n"
+STRING_COPY_ERROR4,          "Fehler: Noch nicht implementiert!\n"
+STRING_DATE_ERROR,           "Ungueltiges Datum."
+STRING_DEL_ERROR5,           "Die Datei %s wird geloescht! "
+STRING_DEL_ERROR6,           "Sind Sie sicher (J/N)?"
+STRING_DEL_ERROR7,           "Loeschen: %s\n"
+STRING_ERROR_ERROR1,         "Unbekannter Fehler! Fehlernummer: 0x%lx\n"
+STRING_ERROR_ERROR2,         "Syntax-Fehler"
+STRING_FOR_ERROR1,           "'in' fehlt fuer ein statement."
+STRING_FOR_ERROR2,           "Klammern nicht gefunden."
+STRING_FOR_ERROR3,           "'do' fehlt." 
+STRING_FOR_ERROR4,           "kein Befehl nach 'do'."
 STRING_FREE_ERROR1,          "Ungueltiges Laufwerk"
-STRING_FREE_ERROR2,          "unlabeled"
-STRING_GOTO_ERROR1,          "No label specified for GOTO"
-STRING_GOTO_ERROR2,          "Label '%s' not found\n"
+STRING_FREE_ERROR2,          "keine Bezeichnung"
+STRING_GOTO_ERROR1,          "Keine Sprungmarke fuer GOTO gesetzt"
+STRING_GOTO_ERROR2,          "Sprungmarke '%s' wurde nicht gefunden\n"
 
 STRING_MOVE_ERROR1,          "[OK]\n"
-STRING_MOVE_ERROR2,          "[Error]\n"
+STRING_MOVE_ERROR2,          "[FEHLER]\n"
 
-STRING_REN_ERROR1,           "MoveFile() failed. Error: %lu\n"
+STRING_REN_ERROR1,           "MoveFile() ist fehlgeschlagen. Fehler: %lu\n"
 
 STRING_START_ERROR1,         "No batch support at the moment!"
 
 STRING_TIME_ERROR1,          "Ungueltige Zeit."
 
-STRING_TYPE_ERROR1,          "Invalid option '/%s'\n"
+STRING_TYPE_ERROR1,          "Ungueltige Option '/%s'\n"
 
 STRING_WINDOW_ERROR1,        "Fenster nicht gefunden"
 
 
-STRING_ERROR_PARAMETERF_ERROR,     "Parameter format not correct - %c\n"
+STRING_ERROR_PARAMETERF_ERROR,     "Parameterformat ist nicht korrect - %c\n"
 STRING_ERROR_INVALID_SWITCH,       "Ungueltiger Parameter - /%c\n"
 STRING_ERROR_TOO_MANY_PARAMETERS,  "Zu viele Parameters - %s\n"
 STRING_ERROR_PATH_NOT_FOUND,       "Pfad wurde nicht gefunden\n"
 STRING_ERROR_FILE_NOT_FOUND,       "Datei wurde nicht gefunden\n"
 STRING_ERROR_REQ_PARAM_MISSING,    "Benoetigter Parameter fehlt\n"
-STRING_ERROR_INVALID_DRIVE,        "Invalid drive specification\n"
-STRING_ERROR_INVALID_PARAM_FORMAT, "Invalid parameter format - %s\n"
+STRING_ERROR_INVALID_DRIVE,        "Ungueltige Laufwerksangaben\n"
+STRING_ERROR_INVALID_PARAM_FORMAT, "Ungueltiges Parameterformat - %s\n"
 STRING_ERROR_BADCOMMAND,           "Ungueltiger Befehl oder Dateiname\n"
-STRING_ERROR_OUT_OF_MEMORY,        "Out of memory error.\n"
+STRING_ERROR_OUT_OF_MEMORY,        "Fehler: Zu wenig Speicher verfuegbar.\n"
 STRING_ERROR_CANNOTPIPE,           "Error!  Cannot pipe!  Cannot open temporary file!\n"
-STRING_ERROR_D_PAUSEMSG,           "Dr³cken Sie eine beliebige Taste . . ."
+STRING_ERROR_D_PAUSEMSG,           "Druecken Sie eine beliebige Taste . . ."
 STRING_ERROR_DRIVER_NOT_READY,     "Laufwerk ist nicht bereit"
 
 STRING_PATH_ERROR,                 "CMD: Not in environment '%s'\n"
 
-STRING_CMD_SHELLINFO,              "\nReactOS Command Line Interpreter"
-STRING_VERSION_RUNVER,             " running on %s"
-STRING_COPY_FILE ,                 "        %d file(s) copied\n"
+STRING_CMD_SHELLINFO,              "\nReactOS Befehlszeilen Interpreter"
+STRING_VERSION_RUNVER,             " laeft in %s"
+STRING_COPY_FILE ,                 "        %d Datei(en) kopiert\n"
 STRING_DELETE_WIPE,                "wiped"
-STRING_FOR_ERROR,                  "bad variable specification."
-STRING_SCREEN_COL,                 "invalid value for col"
-STRING_SCREEN_ROW,                 "invalid value for row"
-STRING_TIMER_TIME                  "Timer %d is %s: "
+STRING_FOR_ERROR,                  "ungueltige Variablenangabe."
+STRING_SCREEN_COL,                 "ungueltige Spalten-Angabe"
+STRING_SCREEN_ROW,                 "ungueltige Zeilen-Angabe"
+STRING_TIMER_TIME                  "Timer %d ist %s: "
 }

Modified: trunk/reactos/subsys/system/cmd/En.rc
--- trunk/reactos/subsys/system/cmd/En.rc	2005-06-06 19:34:36 UTC (rev 15819)
+++ trunk/reactos/subsys/system/cmd/En.rc	2005-06-06 20:05:14 UTC (rev 15820)
@@ -489,6 +489,64 @@
 title         new title"
 
 
+STRING_HELP1, "List of all available commands (+ description)\n\n\
+  command /?     For more information on a specific command\n\n\
+?        List all available commands without description).\n\
+ALIAS    Sets, removes or shows aliases.\n\
+ATTRIB   Displays or changes file attributes.\n\
+BEEP     Beep the speaker.\n\
+CALL     Calls one batch program from another.\n\
+CD       Displays the name of or changes the current directory.\n\
+CHCP     Displays or sets the active code page number.\n\
+CHOICE   Waits for the user to choose one of a set of choices.\n\
+CLS      Clears the screen.\n\
+CMD      Starts a new instance of the Windows command interpreter.\n\
+COLOR    Sets the default console foreground and background colors.\n\
+COPY     Copies one or more files to another location.\n\
+DATE     Displays or sets the date.\n\
+DELETE   Deletes one or more files.\n\
+DIR      Displays a list of files and subdirectories in a directory.\n\
+ECHO     Displays messages, or turns command echoing on or off.\n\
+ERASE    Deletes one or more files.\n\
+EXIT     Quits the CMD.EXE program (command interpreter).\n\
+FOR      Runs a specified command for each file in a set of files.\n\
+FREE     (free) disc space.\n\
+GOTO     Directs the Windows command interpreter to a labeled line in\n\
+         a batch program.\n\
+HELP     Provides Help information for ReactOS commands.\n\
+HISTORY  List alle commands which has been used\n\
+IF       Performs conditional processing in batch programs.\n\
+LABEL    Creates, changes, or deletes the volume label of a disk.\n\
+MD       Creates a directory.\n\
+MKDIR    Creates a directory.\n\
+MOVE     Moves one or more files from one directory to another\n\
+         directory.\n\
+PATH     Displays or sets a search path for executable files.\n\
+PAUSE    Suspends processing of a batch file and displays a message.\n\
+POPD     Restores the previous value of the current directory saved by\n\
+         PUSHD.\n\
+PROMPT   Changes the command prompt.\n\
+PUSHD    Saves the current directory then changes it.\n\
+RD       Removes a directory.\n\
+REM      Records comments (remarks) in batch files.\n\
+REN      Renames a file or files.\n\
+RENAME   Renames a file or files.\n\
+RMDIR    Removes a directory.\n\
+SCREEN   Move cursor and optionally print text.\n\
+SET      Displays, sets, or removes Windows environment variables.\n\
+SHIFT    Shifts the position of replaceable parameters in batch files.\n"
+STRING_HELP2, "START    Starts a separate window to run a specified program or command.\n\
+         Befehl auszufuehren.\n\
+TIME     Displays or sets the system time.\n\
+TIMER    Allow the use of ten stopwaches.\n\
+TITLE    Sets the window title for a CMD.EXE session.\n\
+TYPE     Displays the contents of a text file.\n\
+VER      Displays the Windows version.\n\
+VERIFY   Tells Windows whether to verify that your files are written\n\
+         correctly to a disk.\n\
+VOL      Displays a disk volume label and serial number."
+
+
 STRING_CHOICE_OPTION,         "YN"
 STRING_COPY_OPTION,           "YNA"
 

Modified: trunk/reactos/subsys/system/cmd/cmd.c
--- trunk/reactos/subsys/system/cmd/cmd.c	2005-06-06 19:34:36 UTC (rev 15819)
+++ trunk/reactos/subsys/system/cmd/cmd.c	2005-06-06 20:05:14 UTC (rev 15820)
@@ -129,8 +129,11 @@
  *    12-Jul-2004 (Jens Collin <jens.collin@lakhei.com>)
  *       Added ShellExecute call when all else fails to be able to "launch" any file.
  *
- *    02-Apr-2005 (Magnus Olsen) <magnus@greatlord.com>)
+ *    02-Apr-2005 (Magnus Olsen <magnus@greatlord.com>)
  *        Remove all hardcode string to En.rc
+ *
+ *    06-May-2005 (Klemens Friedl <frik85@gmail.com>)
+ *        Add 'help' command (list all commands plus description)
  */
 
 #include "precomp.h"

Modified: trunk/reactos/subsys/system/cmd/cmd.h
--- trunk/reactos/subsys/system/cmd/cmd.h	2005-06-06 19:34:36 UTC (rev 15819)
+++ trunk/reactos/subsys/system/cmd/cmd.h	2005-06-06 20:05:14 UTC (rev 15820)
@@ -124,6 +124,7 @@
 extern COMMAND cmds[];		/* The internal command table */
 
 VOID PrintCommandList (VOID);
+VOID PrintCommandListDetail (VOID);
 
 
 /* Prototypes for COLOR.C */
@@ -259,8 +260,8 @@
 INT  CommandExit (LPTSTR, LPTSTR);
 INT  CommandRem (LPTSTR, LPTSTR);
 INT  CommandShowCommands (LPTSTR, LPTSTR);
+INT  CommandShowCommandsDetail (LPTSTR, LPTSTR);
 
-
 /* Prototypes for LABEL.C */
 INT cmd_label (LPTSTR, LPTSTR);
 

Modified: trunk/reactos/subsys/system/cmd/cmdtable.c
--- trunk/reactos/subsys/system/cmd/cmdtable.c	2005-06-06 19:34:36 UTC (rev 15819)
+++ trunk/reactos/subsys/system/cmd/cmdtable.c	2005-06-06 20:05:14 UTC (rev 15820)
@@ -18,6 +18,7 @@
  */
 
 #include "precomp.h"
+#include "resource.h"
 
 
 /* a list of all the internal commands, associating their command names */
@@ -28,6 +29,7 @@
 {
 	{_T("?"), 0, CommandShowCommands},
 
+
 #ifdef INCLUDE_CMD_ACTIVATE
 	{_T("activate"), 0, CommandActivate},
 #endif
@@ -113,6 +115,8 @@
 
 	{_T("goto"), CMD_BATCHONLY, cmd_goto},
 
+	{_T("help"), 0, CommandShowCommandsDetail},
+
 #ifdef FEATURE_HISTORY
 	{_T("history"), 0, CommandHistory},
 #endif
@@ -256,4 +260,10 @@
 		ConOutChar ('\n');
 }
 
+VOID PrintCommandListDetail (VOID)
+{
+	ConOutResPuts(STRING_HELP1);
+	ConOutResPuts(STRING_HELP2);
+}
+
 /* EOF */

Modified: trunk/reactos/subsys/system/cmd/internal.c
--- trunk/reactos/subsys/system/cmd/internal.c	2005-06-06 19:34:36 UTC (rev 15819)
+++ trunk/reactos/subsys/system/cmd/internal.c	2005-06-06 20:05:14 UTC (rev 15820)
@@ -515,4 +515,10 @@
 	return 0;
 }
 
+INT CommandShowCommandsDetail (LPTSTR cmd, LPTSTR param)
+{
+	PrintCommandListDetail ();
+	return 0;
+}
+
 /* EOF */

Modified: trunk/reactos/subsys/system/cmd/resource.h
--- trunk/reactos/subsys/system/cmd/resource.h	2005-06-06 19:34:36 UTC (rev 15819)
+++ trunk/reactos/subsys/system/cmd/resource.h	2005-06-06 20:05:14 UTC (rev 15820)
@@ -212,6 +212,8 @@
 #define STRING_SCREEN_COL                  715
 #define STRING_SCREEN_ROW                  716
 #define STRING_TIMER_TIME                  717
+#define STRING_HELP1                       718
+#define STRING_HELP2                       719
 
 /* These strings are language independent (cmd.rc) */
 #define STRING_FREEDOS_DEV                 800