cmd: Misc tab fixes.
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c
index 5e405d5..7b8f76d 100644
--- a/programs/cmd/builtins.c
+++ b/programs/cmd/builtins.c
@@ -2098,7 +2098,8 @@
                      NORM_IGNORECASE | SORT_STRINGSORT,
                      command, 2, parmD, -1) == CSTR_EQUAL) {
     command += 2;
-    while (*command && *command==' ') command++;
+    while (*command && (*command==' ' || *command=='\t'))
+      command++;
   }
 
   GetCurrentDirectoryW(sizeof(cwd)/sizeof(WCHAR), cwd);
@@ -2309,7 +2310,7 @@
     DWORD count;
 
     s += 2;
-    while (*s && *s==' ') s++;
+    while (*s && (*s==' ' || *s=='\t')) s++;
     if (*s=='\"')
         WCMD_opt_s_strip_quotes(s);
 
@@ -2406,7 +2407,7 @@
   }
   else {
     s = param1;
-    while ((*s == '=') || (*s == ' ')) s++;
+    while ((*s == '=') || (*s == ' ') || (*s == '\t')) s++;
     if (strlenW(s) == 0) {
       SetEnvironmentVariableW(promptW, NULL);
     }
diff --git a/programs/cmd/tests/test_builtins.cmd b/programs/cmd/tests/test_builtins.cmd
index cc083d2..6cd8a48 100644
--- a/programs/cmd/tests/test_builtins.cmd
+++ b/programs/cmd/tests/test_builtins.cmd
@@ -325,6 +325,11 @@
 cd ..\..
 cd
 rd /Q/s foobar
+mkdir foobar
+cd /d@tab@foobar
+cd
+cd ..
+rd /q/s foobar
 
 echo ------------ Testing type ------------
 echo bar> foobaz
@@ -465,6 +470,7 @@
 echo ...for /L
 rem Some cases loop forever writing 0s, like e.g. (1,0,1), (1,a,3) or (a,b,c); those can't be tested here
 for /L %%i in (1,2,0) do echo %%i
+for@tab@/L %%i in (1,2,0) do echo %%i
 for /L %%i in (1,2,6) do echo %%i
 for /l %%i in (1 ,2,6) do echo %%i
 for /L %%i in (a,2,3) do echo %%i
diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp
index 535ef44..e6bf421 100644
--- a/programs/cmd/tests/test_builtins.cmd.exp
+++ b/programs/cmd/tests/test_builtins.cmd.exp
@@ -247,6 +247,7 @@
 @pwd@\foobar\bar bak
 @pwd@\foobar\bar bak
 @pwd@
+@pwd@\foobar
 ------------ Testing type ------------
 
 @pwd@>type foobaz@space@