From 7b41ffbf61cb849b3486188f19bf0557d79c0a18 Mon Sep 17 00:00:00 2001
From: Christian Costa <titan.costa@wanadoo.fr>
Date: Tue, 6 Sep 2011 09:35:02 +0200
Subject: [PATCH] attrib: Move implementation from cmd.exe to the standalone
 command.

---
 configure                   |   2 +-
 configure.ac                |   2 +-
 po/ar.po                    |  45 ++++++---
 po/bg.po                    |  45 ++++++---
 po/ca.po                    |  43 ++++++--
 po/cs.po                    |  43 ++++++--
 po/da.po                    |  47 ++++++---
 po/de.po                    |  47 ++++++---
 po/el.po                    |  45 ++++++---
 po/en.po                    |  47 ++++++---
 po/en_US.po                 |  66 ++++++++++---
 po/eo.po                    |  45 ++++++---
 po/es.po                    |  47 ++++++---
 po/fa.po                    |  45 ++++++---
 po/fi.po                    |  45 ++++++---
 po/fr.po                    |  47 ++++++---
 po/he.po                    |  47 ++++++---
 po/hi.po                    |  43 ++++++--
 po/hu.po                    |  45 ++++++---
 po/it.po                    |  47 ++++++---
 po/ja.po                    |  47 ++++++---
 po/ko.po                    |  47 ++++++---
 po/lt.po                    |  47 ++++++---
 po/ml.po                    |  43 ++++++--
 po/nb_NO.po                 |  49 +++++++---
 po/nl.po                    |  47 ++++++---
 po/or.po                    |  43 ++++++--
 po/pa.po                    |  43 ++++++--
 po/pl.po                    |  47 ++++++---
 po/pt_BR.po                 |  47 ++++++---
 po/pt_PT.po                 |  49 +++++++---
 po/rm.po                    |  45 ++++++---
 po/ro.po                    |  47 ++++++---
 po/ru.po                    |  47 ++++++---
 po/sk.po                    |  45 ++++++---
 po/sl.po                    |  49 +++++++---
 po/sr_RS@cyrillic.po        |  45 ++++++---
 po/sr_RS@latin.po           |  45 ++++++---
 po/sv.po                    |  47 ++++++---
 po/te.po                    |  43 ++++++--
 po/th.po                    |  45 ++++++---
 po/tr.po                    |  49 +++++++---
 po/uk.po                    |  47 ++++++---
 po/wa.po                    |  45 ++++++---
 po/wine.pot                 |  43 ++++++--
 po/zh_CN.po                 |  43 ++++++--
 po/zh_TW.po                 |  45 ++++++---
 programs/attrib/Makefile.in |   4 +
 programs/attrib/attrib.c    | 190 ++++++++++++++++++++++++++++++++++--
 programs/attrib/attrib.h    |  28 ++++++
 programs/attrib/attrib.rc   |  49 ++++++++++
 programs/cmd/builtins.c     |  83 ----------------
 programs/cmd/wcmd.h         |   1 -
 programs/cmd/wcmdmain.c     |   3 -
 54 files changed, 1831 insertions(+), 609 deletions(-)
 create mode 100644 programs/attrib/attrib.h
 create mode 100644 programs/attrib/attrib.rc

diff --git a/configure b/configure
index 30789cb38c8..0379352d264 100755
--- a/configure
+++ b/configure
@@ -15204,7 +15204,7 @@ wine_fn_config_makefile libs/wine enable_libs_wine install-dev,install-lib
 wine_fn_config_makefile libs/wpp enable_libs_wpp
 wine_fn_config_makefile loader enable_loader install-lib,manpage
 wine_fn_config_program aspnet_regiis enable_aspnet_regiis install
-wine_fn_config_program attrib enable_attrib install
+wine_fn_config_program attrib enable_attrib install,po
 wine_fn_config_program cabarc enable_cabarc install
 wine_fn_config_program cacls enable_cacls install
 wine_fn_config_program clock enable_clock install,po
diff --git a/configure.ac b/configure.ac
index b4c7d2bdb7a..40ea4317630 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2897,7 +2897,7 @@ WINE_CONFIG_MAKEFILE([libs/wine],,[install-dev,install-lib])
 WINE_CONFIG_MAKEFILE([libs/wpp])
 WINE_CONFIG_MAKEFILE([loader],,[install-lib,manpage])
 WINE_CONFIG_PROGRAM(aspnet_regiis,,[install])
-WINE_CONFIG_PROGRAM(attrib,,[install])
+WINE_CONFIG_PROGRAM(attrib,,[install,po])
 WINE_CONFIG_PROGRAM(cabarc,,[install])
 WINE_CONFIG_PROGRAM(cacls,,[install])
 WINE_CONFIG_PROGRAM(clock,,[install,po])
diff --git a/po/ar.po b/po/ar.po
index 96461abfc1c..2ca1dc224e5 100644
--- a/po/ar.po
+++ b/po/ar.po
@@ -7513,6 +7513,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "تعذّر إيجاد '%s'."
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr ""
@@ -7955,12 +7989,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7969,11 +7997,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "تعذّر إيجاد '%s'."
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/bg.po b/po/bg.po
index c9221851b18..2ffcedff81a 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -7682,6 +7682,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "Файлът не е намерен"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr ""
@@ -8124,12 +8158,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8138,11 +8166,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Файлът не е намерен"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/ca.po b/po/ca.po
index 6b6bb2698e8..1ef04edca1f 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -7429,6 +7429,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr ""
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr ""
@@ -7871,12 +7904,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7885,10 +7912,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/cs.po b/po/cs.po
index a2a1186630c..e1e14f7ad0e 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -7899,6 +7899,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr ""
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&logové"
@@ -8511,12 +8544,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8525,10 +8552,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/da.po b/po/da.po
index b0f0385db90..a5f71935451 100644
--- a/po/da.po
+++ b/po/da.po
@@ -7942,6 +7942,41 @@ msgstr "Løkke under håndtering af henvisninger"
 msgid "Referral hop limit exceeded"
 msgstr "Grænse for henvisnings hop overskredet"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Ikke implementeret endnu\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr "%s : Filen ikke fundet\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Analog"
@@ -8540,14 +8575,6 @@ msgstr "Mere..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Linie i batchfil muligvis forkortet. Using:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Ikke implementeret endnu\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument mangler\n"
@@ -8556,10 +8583,6 @@ msgstr "Argument mangler\n"
 msgid "Syntax error\n"
 msgstr "Syntaks fejl\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : Filen ikke fundet\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "Ingen hjælp tilgængelig for %s\n"
diff --git a/po/de.po b/po/de.po
index 42f8ce94b99..ddc271f7642 100644
--- a/po/de.po
+++ b/po/de.po
@@ -7736,6 +7736,41 @@ msgstr "Schleife während der Abarbeitung von Weiterleitungen"
 msgid "Referral hop limit exceeded"
 msgstr "Ãœberschreitung der maximalen Anzahl von Weiterleitungen"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Noch nicht implementiert\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr "%s : Datei nicht gefunden\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&log"
@@ -8381,14 +8416,6 @@ msgstr ""
 "Die Zeile bei der Batchverarbeitung ist möglicherweise abgeschnitten. "
 "Benutze:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Noch nicht implementiert\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument fehlt\n"
@@ -8397,10 +8424,6 @@ msgstr "Argument fehlt\n"
 msgid "Syntax error\n"
 msgstr "Syntaxfehler\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : Datei nicht gefunden\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "Hilfe für %s ist nicht verfügbar\n"
diff --git a/po/el.po b/po/el.po
index bbd35c0e515..7ca3d1004f6 100644
--- a/po/el.po
+++ b/po/el.po
@@ -7563,6 +7563,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "Το αρχείο δε βρέθηκε"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr ""
@@ -8004,12 +8038,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8018,11 +8046,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Το αρχείο δε βρέθηκε"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/en.po b/po/en.po
index 1a2fab630f8..ad1e6c6b2bc 100644
--- a/po/en.po
+++ b/po/en.po
@@ -7566,6 +7566,41 @@ msgstr "Loop while handling referrals"
 msgid "Referral hop limit exceeded"
 msgstr "Referral hop limit exceeded"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Not Yet Implemented\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr "%s: File Not Found\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&log"
@@ -8168,14 +8203,6 @@ msgstr "More..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Line in Batch processing possibly truncated. Using:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Not Yet Implemented\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument missing\n"
@@ -8184,10 +8211,6 @@ msgstr "Argument missing\n"
 msgid "Syntax error\n"
 msgstr "Syntax error\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s: File Not Found\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "No help available for %s\n"
diff --git a/po/en_US.po b/po/en_US.po
index f6c4cb578f2..61f3b66d4f3 100644
--- a/po/en_US.po
+++ b/po/en_US.po
@@ -7664,6 +7664,60 @@ msgstr "Loop while handling referrals"
 msgid "Referral hop limit exceeded"
 msgstr "Referral hop limit exceeded"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Not Yet Implemented\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr "%s: File Not Found\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&log"
@@ -8292,14 +8346,6 @@ msgstr "More..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Line in Batch processing possibly truncated. Using:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Not Yet Implemented\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument missing\n"
@@ -8308,10 +8354,6 @@ msgstr "Argument missing\n"
 msgid "Syntax error\n"
 msgstr "Syntax error\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s: File Not Found\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "No help available for %s\n"
diff --git a/po/eo.po b/po/eo.po
index af41e19168a..0790f6dd381 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7684,6 +7684,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "Dosiero ne estis trovita"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&loga"
@@ -8131,12 +8165,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8145,11 +8173,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Dosiero ne estis trovita"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/es.po b/po/es.po
index 405ee1a4fa9..9d4f6cfd17f 100644
--- a/po/es.po
+++ b/po/es.po
@@ -8098,6 +8098,41 @@ msgstr "Bucle al manejar remisiones"
 msgid "Referral hop limit exceeded"
 msgstr "Límite de saltos de remisiones excedido"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"No implementado\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr "%s : Archivo no encontrado\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Analógico"
@@ -8713,14 +8748,6 @@ msgstr "Más..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Línea en procesamiento por lotes posiblemente truncada. Usando:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"No implementado\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argumento faltante\n"
@@ -8729,10 +8756,6 @@ msgstr "Argumento faltante\n"
 msgid "Syntax error\n"
 msgstr "Error de sintaxis\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : Archivo no encontrado\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "No hay ayuda disponible para %s\n"
diff --git a/po/fa.po b/po/fa.po
index 5d33db7e14e..b04aaabff28 100644
--- a/po/fa.po
+++ b/po/fa.po
@@ -7515,6 +7515,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "'%s' پیدا نشد."
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr ""
@@ -7957,12 +7991,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7971,11 +7999,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "'%s' پیدا نشد."
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/fi.po b/po/fi.po
index ef748484560..81b69cb2526 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -7760,6 +7760,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "Tiedostoa ei löydy"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Analoginen"
@@ -8207,12 +8241,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8221,11 +8249,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Tiedostoa ei löydy"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/fr.po b/po/fr.po
index 8b8cdf98ea0..6a698c93400 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7734,6 +7734,41 @@ msgstr "Boucle lors du traitement des référants"
 msgid "Referral hop limit exceeded"
 msgstr "Limite du nombre de référants dépassée"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Pas encore implémenté\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr "%s : fichier non trouvé\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&logique"
@@ -8394,14 +8429,6 @@ msgstr "Plus..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Ligne du processus batch probablement tronquée. Utilisation de :\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Pas encore implémenté\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument manquant\n"
@@ -8410,10 +8437,6 @@ msgstr "Argument manquant\n"
 msgid "Syntax error\n"
 msgstr "Erreur de syntaxe\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : fichier non trouvé\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "Pas d'aide disponible pour %s\n"
diff --git a/po/he.po b/po/he.po
index eae24b69420..030a8d4ca1e 100644
--- a/po/he.po
+++ b/po/he.po
@@ -7768,6 +7768,41 @@ msgstr "לולאה בעת טיפול בהפניות"
 msgid "Referral hop limit exceeded"
 msgstr "מגבלת הקפצת ההפניות בחריגה"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Not Yet Implemented\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr "%s: File Not Found\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&אנלוגי"
@@ -8378,14 +8413,6 @@ msgstr "More..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Line in Batch processing possibly truncated. Using:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Not Yet Implemented\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument missing\n"
@@ -8394,10 +8421,6 @@ msgstr "Argument missing\n"
 msgid "Syntax error\n"
 msgstr "Syntax error\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s: File Not Found\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "No help available for %s\n"
diff --git a/po/hi.po b/po/hi.po
index 8ea9a238baf..3c10f218e81 100644
--- a/po/hi.po
+++ b/po/hi.po
@@ -7425,6 +7425,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr ""
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "एनालॉग (&l)"
@@ -7867,12 +7900,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7881,10 +7908,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/hu.po b/po/hu.po
index c98b2a62da8..9c1af8415c8 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -7960,6 +7960,40 @@ msgstr "Ciklus a beszámolók kezelése közben"
 msgid "Referral hop limit exceeded"
 msgstr "Beszámolási ugrás limit túllépve"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "Fájl nem található"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&lóg"
@@ -8407,12 +8441,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8421,11 +8449,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Fájl nem található"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/it.po b/po/it.po
index 9fcfdfa0826..bdd77c7a271 100644
--- a/po/it.po
+++ b/po/it.po
@@ -8008,6 +8008,41 @@ msgstr "Loop nel gestire i rinvii"
 msgid "Referral hop limit exceeded"
 msgstr "Ecceduto il limite di salti di rinvio"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Non ancora implementato\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr "%s : File non trovato\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&logico"
@@ -8630,14 +8665,6 @@ msgstr "Di più..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Linea nell'elaborazione Batch probabilmente troncata. Uso:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Non ancora implementato\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Manca un parametro\n"
@@ -8646,10 +8673,6 @@ msgstr "Manca un parametro\n"
 msgid "Syntax error\n"
 msgstr "Errore di sintassi\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : File non trovato\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "Nessun aiuto disponibile per %s\n"
diff --git a/po/ja.po b/po/ja.po
index 1dc7ae3d445..1eb1a557941 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -7665,6 +7665,41 @@ msgstr "紹介の取り扱い中にループです"
 msgid "Referral hop limit exceeded"
 msgstr "紹介のホップ数が限界を超えました"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"まだ実装されていません\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr "%s: ファイルが見つかりません\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "アナログ(&L)"
@@ -8270,14 +8305,6 @@ msgstr "More..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "バッチ処理の行が切り落とされた可能性があります。対象行:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"まだ実装されていません\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "引数がありません\n"
@@ -8286,10 +8313,6 @@ msgstr "引数がありません\n"
 msgid "Syntax error\n"
 msgstr "文法エラー\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s: ファイルが見つかりません\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "%s に対するヘルプはありません\n"
diff --git a/po/ko.po b/po/ko.po
index 1c10f46d1fd..47945f83ddb 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -7641,6 +7641,41 @@ msgstr "리퍼럴을 다루는 동안의 루프"
 msgid "Referral hop limit exceeded"
 msgstr "리퍼럴 홉 제한에 도달했습니다"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"아직 구현되지 않았습니다\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr "%s :파일을 찾을 수 없습니다\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "아날로그(&L)"
@@ -8263,14 +8298,6 @@ msgstr "더 많이..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "배치 작업의 줄은 아마도 불완전한 것 같습니다. 사용법:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"아직 구현되지 않았습니다\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "인수가 없습니다\n"
@@ -8279,10 +8306,6 @@ msgstr "인수가 없습니다\n"
 msgid "Syntax error\n"
 msgstr "문법 오류\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s :파일을 찾을 수 없습니다\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "%s를 위한 어떠한 도움말도 찾을 수 없습니다\n"
diff --git a/po/lt.po b/po/lt.po
index 342ba0d5b56..59f8d88ff44 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7688,6 +7688,41 @@ msgstr "Aptiktas ciklas apdorojant perdavimus"
 msgid "Referral hop limit exceeded"
 msgstr "Viršyta perdavimo šuolių riba"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Dar nerealizuota\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr "%s: failas nerastas\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&loginis"
@@ -8315,14 +8350,6 @@ msgstr "Daugiau..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Paketinio apdorojimo eilutÄ— galimai nukirsta. Naudojama:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Dar nerealizuota\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Trūksta argumento\n"
@@ -8331,10 +8358,6 @@ msgstr "Trūksta argumento\n"
 msgid "Syntax error\n"
 msgstr "SintaksÄ—s klaida\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s: failas nerastas\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "NÄ—ra informacijos apie %s\n"
diff --git a/po/ml.po b/po/ml.po
index f3ab67f6d29..f6637f9bb06 100644
--- a/po/ml.po
+++ b/po/ml.po
@@ -7425,6 +7425,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr ""
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "_അനലോഗ്"
@@ -7867,12 +7900,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7881,10 +7908,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/nb_NO.po b/po/nb_NO.po
index f68c9252448..af64aa58d35 100644
--- a/po/nb_NO.po
+++ b/po/nb_NO.po
@@ -7946,6 +7946,42 @@ msgstr "Løkke under håndtering av henvisninger"
 msgid "Referral hop limit exceeded"
 msgstr "Grense for henvisningshopp overskredet"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Not Yet Implemented\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "%s : File Not Found\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&log"
@@ -8548,14 +8584,6 @@ msgstr "Mer..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Line in Batch processing possibly truncated. Using:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Not Yet Implemented\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument missing\n"
@@ -8564,11 +8592,6 @@ msgstr "Argument missing\n"
 msgid "Syntax error\n"
 msgstr "Syntax error\n"
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "%s : File Not Found\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "No help available for %s\n"
diff --git a/po/nl.po b/po/nl.po
index 92d5aa3375f..cdd8f6cd548 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -7815,6 +7815,41 @@ msgstr "Lus gevonden bij het verwerken van verwijzingen"
 msgid "Referral hop limit exceeded"
 msgstr "Overschrijding van limiet op verwijzingen"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Nog niet geïmplementeerd\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr "%s : Bestand Niet Gevonden\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Analoog"
@@ -8434,14 +8469,6 @@ msgstr "Meer..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Regel in Batch proces mogelijk afgebroken. We gebruiken:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Nog niet geïmplementeerd\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument ontbreekt\n"
@@ -8450,10 +8477,6 @@ msgstr "Argument ontbreekt\n"
 msgid "Syntax error\n"
 msgstr "Fout in de syntax\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : Bestand Niet Gevonden\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "Geen help beschikbaar voor %s\n"
diff --git a/po/or.po b/po/or.po
index 51bd43ffe52..0b9d409f46a 100644
--- a/po/or.po
+++ b/po/or.po
@@ -7425,6 +7425,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr ""
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "ଆନାଲଗ ‍‌(&l)"
@@ -7867,12 +7900,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7881,10 +7908,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/pa.po b/po/pa.po
index aba95ed440b..165a7b12ff9 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -7425,6 +7425,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr ""
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "ਐਨਾਲਾਗ(&l)"
@@ -7867,12 +7900,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7881,10 +7908,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/pl.po b/po/pl.po
index c78fa9fe4a0..0e94a278de6 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -7706,6 +7706,41 @@ msgstr "Pętla przed obsługą odwołań"
 msgid "Referral hop limit exceeded"
 msgstr "Przekroczono limit skoków odwołań"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Jeszcze niezaimplementowane\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr "%s : Plik nie znaleziony\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&logowy"
@@ -8299,14 +8334,6 @@ msgstr "Więcej..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Linia przy przetwarzaniu pliku bat prawdopodobnie obcięta. Używam:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Jeszcze niezaimplementowane\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Brakuje argumentu\n"
@@ -8315,10 +8342,6 @@ msgstr "Brakuje argumentu\n"
 msgid "Syntax error\n"
 msgstr "Błąd składni\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : Plik nie znaleziony\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "Plik pomocy nie istnieje dla %s\n"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index fd74bf569ea..e74e1cb38dc 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -7971,6 +7971,41 @@ msgstr "Loop enquanto resolve referências"
 msgid "Referral hop limit exceeded"
 msgstr "Limite de salto de referências excedido"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Ainda não implementado\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr "%s : Arquivo Não Encontrado\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Analógico"
@@ -8577,14 +8612,6 @@ msgstr "Mais..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Linha no processamento do Batch possivelmente truncada. Usando:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Ainda não implementado\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Faltando argumento\n"
@@ -8593,10 +8620,6 @@ msgstr "Faltando argumento\n"
 msgid "Syntax error\n"
 msgstr "Erro de sintaxe\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : Arquivo Não Encontrado\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "Sem ajuda disponível para %s\n"
diff --git a/po/pt_PT.po b/po/pt_PT.po
index 266ca89f124..786dac03e6a 100644
--- a/po/pt_PT.po
+++ b/po/pt_PT.po
@@ -8012,6 +8012,42 @@ msgstr "Ciclo enquanto resolve referências"
 msgid "Referral hop limit exceeded"
 msgstr "Limite de salto de referências excedido"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Not Yet Implemented\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "%s : File Not Found\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Analógico"
@@ -8624,14 +8660,6 @@ msgstr "More..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Line in Batch processing possibly truncated. Using:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Not Yet Implemented\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument missing\n"
@@ -8640,11 +8668,6 @@ msgstr "Argument missing\n"
 msgid "Syntax error\n"
 msgstr "Syntax error\n"
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "%s : File Not Found\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "No help available for %s\n"
diff --git a/po/rm.po b/po/rm.po
index 7392061f1a0..8b411d6d8b3 100644
--- a/po/rm.po
+++ b/po/rm.po
@@ -7473,6 +7473,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+#, fuzzy
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr "Na implementa"
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr ""
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr ""
@@ -7917,13 +7951,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-#, fuzzy
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr "Na implementa"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7932,10 +7959,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/ro.po b/po/ro.po
index b4af0d8c384..2c62dee9530 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -8265,6 +8265,41 @@ msgstr "Buclă la gestionarea referenților"
 msgid "Referral hop limit exceeded"
 msgstr "Limită număr referenți depășită"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Încă neimplementat\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr "%s : fișier negăsit\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&logic"
@@ -8866,14 +8901,6 @@ msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 "Linie posibil trunchiată în procesarea fișierului batch. Se utilizează:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Încă neimplementat\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument lipsă\n"
@@ -8882,10 +8909,6 @@ msgstr "Argument lipsă\n"
 msgid "Syntax error\n"
 msgstr "Eroare de sintaxă\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : fișier negăsit\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "Nu există ajutor pentru %s\n"
diff --git a/po/ru.po b/po/ru.po
index ada126af60e..560958ea5f2 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -7679,6 +7679,41 @@ msgstr "Зацикливание при обработке ссылок"
 msgid "Referral hop limit exceeded"
 msgstr "Предел числа пересылки ссылок превышен"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Ещё не выполнено\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr "%s : Файл не найден\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Аналоговые"
@@ -8288,14 +8323,6 @@ msgstr "Дальше..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Строка в обрабатываемом bat-файле возможно урезана. Используем:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Ещё не выполнено\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Отсутствует аргумент\n"
@@ -8304,10 +8331,6 @@ msgstr "Отсутствует аргумент\n"
 msgid "Syntax error\n"
 msgstr "Синтаксическая ошибка\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : Файл не найден\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "Справка для %s отсутствует\n"
diff --git a/po/sk.po b/po/sk.po
index 8bec025fc78..5533e65d80b 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -7723,6 +7723,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "Súbor nenájdený"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&lógové"
@@ -8165,12 +8199,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8179,11 +8207,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Súbor nenájdený"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/sl.po b/po/sl.po
index 5cd4493f933..a90f765eae9 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -7701,6 +7701,42 @@ msgstr "Kroži v zanki med upravljanjem napotiteljev"
 msgid "Referral hop limit exceeded"
 msgstr "Meja preskoka napotitev je bila presežena"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Ni Å¡e podprto\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "%s : datoteke ni mogoče najti\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&logna ura"
@@ -8318,14 +8354,6 @@ msgstr "Več ..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Vrstica v paketni datoteki je morda skrajšana. Uporaba:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Ni Å¡e podprto\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument manjka\n"
@@ -8334,11 +8362,6 @@ msgstr "Argument manjka\n"
 msgid "Syntax error\n"
 msgstr "Skladenjska napaka\n"
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "%s : datoteke ni mogoče najti\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "Za ukaz %s pomoč ni na voljo\n"
diff --git a/po/sr_RS@cyrillic.po b/po/sr_RS@cyrillic.po
index 085c79b08e5..35c7deb10af 100644
--- a/po/sr_RS@cyrillic.po
+++ b/po/sr_RS@cyrillic.po
@@ -7834,6 +7834,40 @@ msgstr "Понављај при руковању с упућивачима"
 msgid "Referral hop limit exceeded"
 msgstr "Ограничење чвора упућивача је прекорачено"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "Датотека није пронађена"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Аналогни"
@@ -8276,12 +8310,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8290,11 +8318,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Датотека није пронађена"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/sr_RS@latin.po b/po/sr_RS@latin.po
index 14cbf8f7fe8..de38b1459a9 100644
--- a/po/sr_RS@latin.po
+++ b/po/sr_RS@latin.po
@@ -7883,6 +7883,40 @@ msgstr "Ponavljaj pri rukovanju s upućivačima"
 msgid "Referral hop limit exceeded"
 msgstr "Ograničenje čvora upućivača je prekoračeno"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "Datoteka nije pronađena"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Analogni"
@@ -8325,12 +8359,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8339,11 +8367,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Datoteka nije pronađena"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/sv.po b/po/sv.po
index 0f0737d13cf..04ca1f0d2bb 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -7691,6 +7691,41 @@ msgstr "Loop while handling referrals"
 msgid "Referral hop limit exceeded"
 msgstr "Referral hop limit exceeded"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Ännu ej implementerat\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr "%s : kunde inte hitta filen\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&log"
@@ -8300,14 +8335,6 @@ msgstr "Mer..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "En rad i batch möjligtvis trunkerad. Använder:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Ännu ej implementerat\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument saknas\n"
@@ -8316,10 +8343,6 @@ msgstr "Argument saknas\n"
 msgid "Syntax error\n"
 msgstr "Syntaxfel\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : kunde inte hitta filen\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "Ingen hjälp tillgänglig för %s\n"
diff --git a/po/te.po b/po/te.po
index 1200566f50f..da77cd79ebe 100644
--- a/po/te.po
+++ b/po/te.po
@@ -7425,6 +7425,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr ""
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "ఎనలాగ్ (&l)"
@@ -7867,12 +7900,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7881,10 +7908,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/th.po b/po/th.po
index 658baad0552..1442560a2eb 100644
--- a/po/th.po
+++ b/po/th.po
@@ -7566,6 +7566,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "ไม่พบแฟ้ม"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "ธรรมดา"
@@ -8013,12 +8047,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8027,11 +8055,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "ไม่พบแฟ้ม"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/tr.po b/po/tr.po
index 55fff35d165..de34ccda8b8 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -8060,6 +8060,42 @@ msgstr "Başvuruları işlerken dön"
 msgid "Referral hop limit exceeded"
 msgstr "Paketin gönderildiği yönlendirici sınırı aşıldı"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Not Yet Implemented\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "%s : File Not Found\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&log"
@@ -8662,14 +8698,6 @@ msgstr "More..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Line in Batch processing possibly truncated. Using:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Not Yet Implemented\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument missing\n"
@@ -8678,11 +8706,6 @@ msgstr "Argument missing\n"
 msgid "Syntax error\n"
 msgstr "Syntax error\n"
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "%s : File Not Found\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "No help available for %s\n"
diff --git a/po/uk.po b/po/uk.po
index 4c156d849a3..ff927063746 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -7674,6 +7674,41 @@ msgstr "Зациклювання при обробці посилань"
 msgid "Referral hop limit exceeded"
 msgstr "Перевищено граничну кількість пересилання посилань"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Ще не реалізовано\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr "%s : Файл не знайдено\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Анало&говий"
@@ -8276,14 +8311,6 @@ msgstr "Більше..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Рядок в обробці Пакету мабуть урізаний. Використовую:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Ще не реалізовано\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Відсутній аргумент\n"
@@ -8292,10 +8319,6 @@ msgstr "Відсутній аргумент\n"
 msgid "Syntax error\n"
 msgstr "Синтаксична помилка\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : Файл не знайдено\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "Немає довідки для %s\n"
diff --git a/po/wa.po b/po/wa.po
index ce09c6218d5..4493c01160e 100644
--- a/po/wa.po
+++ b/po/wa.po
@@ -7531,6 +7531,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "'%s' pout nén esse trové."
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Analodjike"
@@ -7978,12 +8012,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7992,11 +8020,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "'%s' pout nén esse trové."
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/wine.pot b/po/wine.pot
index 6f3313e2c73..75f75975110 100644
--- a/po/wine.pot
+++ b/po/wine.pot
@@ -7402,6 +7402,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr ""
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr ""
@@ -7843,12 +7876,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7857,10 +7884,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 38f2aeee333..c2bb5020d9a 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7815,6 +7815,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+msgid "%s: File Not Found\n"
+msgstr "找不到文件\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "模拟时钟(&L)"
@@ -8262,12 +8295,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8276,10 +8303,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "找不到文件\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 025db1eb5cc..921583b881a 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -7872,6 +7872,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "找不到檔案"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "模擬時鐘(&L)"
@@ -8319,12 +8353,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8333,11 +8361,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "找不到檔案"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/programs/attrib/Makefile.in b/programs/attrib/Makefile.in
index 895697ca37f..53f6809bda6 100644
--- a/programs/attrib/Makefile.in
+++ b/programs/attrib/Makefile.in
@@ -1,7 +1,11 @@
 EXTRADEFS = -DWINE_NO_UNICODE_MACROS
 MODULE    = attrib.exe
 APPMODE   = -mconsole -municode
+IMPORTS   = user32
 
 C_SRCS = attrib.c
 
+RC_SRCS = attrib.rc
+PO_SRCS = attrib.rc
+
 @MAKE_PROG_RULES@
diff --git a/programs/attrib/attrib.c b/programs/attrib/attrib.c
index 9cb9d9fa5ad..33bf3c424b2 100644
--- a/programs/attrib/attrib.c
+++ b/programs/attrib/attrib.c
@@ -1,5 +1,7 @@
 /*
- * Copyright 2010 Christian Costa
+ * ATTRIB - Wine-compatible attrib program
+ *
+ * Copyright 2010-2011 Christian Costa
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -16,19 +18,191 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
-#include "wine/debug.h"
+#include <windows.h>
+#include <wine/debug.h>
+#include <wine/unicode.h>
+#include "attrib.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(attrib);
 
+/* =========================================================================
+ * Load a string from the resource file, handling any error
+ * Returns string retrieved from resource file
+ * ========================================================================= */
+static WCHAR *ATTRIB_LoadMessage(UINT id) {
+    static WCHAR msg[MAXSTRING];
+    const WCHAR failedMsg[]  = {'F', 'a', 'i', 'l', 'e', 'd', '!', 0};
+
+    if (!LoadStringW(GetModuleHandleW(NULL), id, msg, sizeof(msg)/sizeof(WCHAR))) {
+        WINE_FIXME("LoadString failed with %d\n", GetLastError());
+        lstrcpyW(msg, failedMsg);
+    }
+    return msg;
+}
+
+/* =========================================================================
+ * Output a formatted unicode string. Ideally this will go to the console
+ *  and hence required WriteConsoleW to output it, however if file i/o is
+ *  redirected, it needs to be WriteFile'd using OEM (not ANSI) format
+ * ========================================================================= */
+int ATTRIB_wprintf(const WCHAR *format, ...) {
+
+    static WCHAR *output_bufW = NULL;
+    static char  *output_bufA = NULL;
+    static BOOL  toConsole    = TRUE;
+    static BOOL  traceOutput  = FALSE;
+#define MAX_WRITECONSOLE_SIZE 65535
+
+    va_list parms;
+    DWORD   nOut;
+    int len;
+    DWORD   res = 0;
+
+    /*
+     * Allocate buffer to use when writing to console
+     * Note: Not freed - memory will be allocated once and released when
+     *         xcopy ends
+     */
+
+    if (!output_bufW) output_bufW = HeapAlloc(GetProcessHeap(), 0,
+                                              MAX_WRITECONSOLE_SIZE);
+    if (!output_bufW) {
+        WINE_FIXME("Out of memory - could not allocate 2 x 64K buffers\n");
+        return 0;
+    }
+
+    va_start(parms, format);
+    len = vsnprintfW(output_bufW, MAX_WRITECONSOLE_SIZE/sizeof(WCHAR), format, parms);
+    va_end(parms);
+    if (len < 0) {
+        WINE_FIXME("String too long.\n");
+        return 0;
+    }
+
+    /* Try to write as unicode all the time we think its a console */
+    if (toConsole) {
+        res = WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE),
+                            output_bufW, len, &nOut, NULL);
+    }
+
+    /* If writing to console has failed (ever) we assume its file
+       i/o so convert to OEM codepage and output                  */
+    if (!res) {
+        BOOL usedDefaultChar = FALSE;
+        DWORD convertedChars;
+
+        toConsole = FALSE;
+
+        /*
+         * Allocate buffer to use when writing to file. Not freed, as above
+         */
+        if (!output_bufA) output_bufA = HeapAlloc(GetProcessHeap(), 0,
+                                                MAX_WRITECONSOLE_SIZE);
+        if (!output_bufA) {
+          WINE_FIXME("Out of memory - could not allocate 2 x 64K buffers\n");
+          return 0;
+        }
+
+        /* Convert to OEM, then output */
+        convertedChars = WideCharToMultiByte(GetConsoleOutputCP(), 0, output_bufW,
+                            len, output_bufA, MAX_WRITECONSOLE_SIZE,
+                            "?", &usedDefaultChar);
+        WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), output_bufA, convertedChars,
+                  &nOut, FALSE);
+    }
+
+    /* Trace whether screen or console */
+    if (!traceOutput) {
+        WINE_TRACE("Writing to console? (%d)\n", toConsole);
+        traceOutput = TRUE;
+    }
+    return nOut;
+}
+
 int wmain(int argc, WCHAR *argv[])
 {
-    int i;
+    DWORD count;
+    HANDLE hff;
+    WIN32_FIND_DATAW fd;
+    WCHAR flags[9] = {' ',' ',' ',' ',' ',' ',' ',' ','\0'};
+    WCHAR name[128];
+    WCHAR *param = argc >= 2 ? argv[1] : NULL;
+    DWORD attrib_set = 0;
+    DWORD attrib_clear = 0;
+    WCHAR help_option[] = {'/','?','\0'};
+
+    if (param && !strcmpW(param, help_option))
+    {
+        ATTRIB_wprintf(ATTRIB_LoadMessage(STRING_HELP));
+        return 0;
+    }
+
+    if (param && (param[0] == '+' || param[0] == '-')) {
+        DWORD attrib = 0;
+        /* FIXME: the real cmd can handle many more than two args; this should be in a loop */
+        switch (param[1]) {
+        case 'H': case 'h': attrib |= FILE_ATTRIBUTE_HIDDEN; break;
+        case 'S': case 's': attrib |= FILE_ATTRIBUTE_SYSTEM; break;
+        case 'R': case 'r': attrib |= FILE_ATTRIBUTE_READONLY; break;
+        case 'A': case 'a': attrib |= FILE_ATTRIBUTE_ARCHIVE; break;
+        default:
+            ATTRIB_wprintf(ATTRIB_LoadMessage(STRING_NYI));
+            return 0;
+        }
+        switch (param[0]) {
+        case '+': attrib_set = attrib; break;
+        case '-': attrib_clear = attrib; break;
+        }
+        param = argc >= 3 ? argv[2] : NULL;
+    }
+
+    if (!param || strlenW(param) == 0) {
+        static const WCHAR slashStarW[]  = {'\\','*','\0'};
+
+        GetCurrentDirectoryW(sizeof(name)/sizeof(WCHAR), name);
+        strcatW (name, slashStarW);
+    } else {
+        strcpyW(name, param);
+    }
 
-    WINE_FIXME("attrib.exe is currently only a stub command\n");
-    WINE_FIXME("cmdline:");
-    for (i = 0; i < argc; i++)
-        WINE_FIXME(" %s", wine_dbgstr_w(argv[i]));
-    WINE_FIXME("\n");
+    hff = FindFirstFileW(name, &fd);
+    if (hff == INVALID_HANDLE_VALUE) {
+        ATTRIB_wprintf(ATTRIB_LoadMessage(STRING_FILENOTFOUND), name);
+    }
+    else {
+        do {
+            if (attrib_set || attrib_clear) {
+                fd.dwFileAttributes &= ~attrib_clear;
+                fd.dwFileAttributes |= attrib_set;
+                if (!fd.dwFileAttributes)
+                    fd.dwFileAttributes |= FILE_ATTRIBUTE_NORMAL;
+                SetFileAttributesW(name, fd.dwFileAttributes);
+            } else {
+                static const WCHAR fmt[] = {'%','s',' ',' ',' ','%','s','\n','\0'};
+                if (fd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) {
+                    flags[0] = 'H';
+                }
+                if (fd.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM) {
+                    flags[1] = 'S';
+                }
+                if (fd.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE) {
+                    flags[2] = 'A';
+                }
+                if (fd.dwFileAttributes & FILE_ATTRIBUTE_READONLY) {
+                    flags[3] = 'R';
+                }
+                if (fd.dwFileAttributes & FILE_ATTRIBUTE_TEMPORARY) {
+                    flags[4] = 'T';
+                }
+                if (fd.dwFileAttributes & FILE_ATTRIBUTE_COMPRESSED) {
+                    flags[5] = 'C';
+                }
+                ATTRIB_wprintf(fmt, flags, fd.cFileName);
+                for (count=0; count < 8; count++) flags[count] = ' ';
+            }
+        } while (FindNextFileW(hff, &fd) != 0);
+    }
+    FindClose (hff);
 
     return 0;
 }
diff --git a/programs/attrib/attrib.h b/programs/attrib/attrib.h
new file mode 100644
index 00000000000..41c0ae490e4
--- /dev/null
+++ b/programs/attrib/attrib.h
@@ -0,0 +1,28 @@
+/*
+ * ATTRIB - Wine-compatible attrib program
+ *
+ * Copyright 2011 Christian Costa
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <windef.h>
+
+#define MAXSTRING 8192
+
+/* Translation ids */
+#define STRING_NYI              101
+#define STRING_FILENOTFOUND     102
+#define STRING_HELP             103
diff --git a/programs/attrib/attrib.rc b/programs/attrib/attrib.rc
new file mode 100644
index 00000000000..478a19679ba
--- /dev/null
+++ b/programs/attrib/attrib.rc
@@ -0,0 +1,49 @@
+/*
+ * ATTRIB - Wine-compatible attrib program
+ *
+ * Copyright 2011 Christian Costa
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "attrib.h"
+
+LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
+
+STRINGTABLE
+{
+    STRING_NYI, "Not Yet Implemented\n\n"
+    STRING_FILENOTFOUND, "%s: File Not Found\n"
+    STRING_HELP,
+"ATTRIB - Displays or changes file attributes.\n\
+\n\
+Syntax:\n\
+ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n\
+\t     [/S [/D]]\n\
+\n\
+Where:\n\
+\n\
+  +   Sets an attribute.\n\
+  -   Clears an attribute.\n\
+  R   Read-only file attribute\n\
+  A   Archive file attribute.\n\
+  S   System file attribute.\n\
+  H   Hidden file attribute.\n\
+  [drive:][path][filename]\n\
+      Specifies a file or files for attrib to process.\n\
+  /S  Processes matching files in the current folder\n\
+      and all subfolders.\n\
+  /D  Processes folders as well.\n"
+}
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c
index bbf29205422..7063eb73c24 100644
--- a/programs/cmd/builtins.c
+++ b/programs/cmd/builtins.c
@@ -1998,89 +1998,6 @@ void WCMD_endlocal (void) {
   LocalFree (temp);
 }
 
-/*****************************************************************************
- * WCMD_setshow_attrib
- *
- * Display and optionally sets DOS attributes on a file or directory
- *
- */
-
-void WCMD_setshow_attrib (void) {
-
-  DWORD count;
-  HANDLE hff;
-  WIN32_FIND_DATAW fd;
-  WCHAR flags[9] = {' ',' ',' ',' ',' ',' ',' ',' ','\0'};
-  WCHAR *name = param1;
-  DWORD attrib_set=0;
-  DWORD attrib_clear=0;
-
-  if (param1[0] == '+' || param1[0] == '-') {
-    DWORD attrib = 0;
-    /* FIXME: the real cmd can handle many more than two args; this should be in a loop */
-    switch (param1[1]) {
-    case 'H': case 'h': attrib |= FILE_ATTRIBUTE_HIDDEN; break;
-    case 'S': case 's': attrib |= FILE_ATTRIBUTE_SYSTEM; break;
-    case 'R': case 'r': attrib |= FILE_ATTRIBUTE_READONLY; break;
-    case 'A': case 'a': attrib |= FILE_ATTRIBUTE_ARCHIVE; break;
-    default:
-      WCMD_output (WCMD_LoadMessage(WCMD_NYI));
-      return;
-    }
-    switch (param1[0]) {
-    case '+': attrib_set = attrib; break;
-    case '-': attrib_clear = attrib; break;
-    }
-    name = param2;
-  }
-
-  if (strlenW(name) == 0) {
-    static const WCHAR slashStarW[]  = {'\\','*','\0'};
-
-    GetCurrentDirectoryW(sizeof(param2)/sizeof(WCHAR), name);
-    strcatW (name, slashStarW);
-  }
-
-  hff = FindFirstFileW(name, &fd);
-  if (hff == INVALID_HANDLE_VALUE) {
-    WCMD_output (WCMD_LoadMessage(WCMD_FILENOTFOUND), name);
-  }
-  else {
-    do {
-      if (attrib_set || attrib_clear) {
-        fd.dwFileAttributes &= ~attrib_clear;
-        fd.dwFileAttributes |= attrib_set;
-        if (!fd.dwFileAttributes)
-           fd.dwFileAttributes |= FILE_ATTRIBUTE_NORMAL;
-        SetFileAttributesW(name, fd.dwFileAttributes);
-      } else {
-        static const WCHAR fmt[] = {'%','s',' ',' ',' ','%','s','\n','\0'};
-        if (fd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) {
-	  flags[0] = 'H';
-	}
-        if (fd.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM) {
-	  flags[1] = 'S';
-	}
-        if (fd.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE) {
-	  flags[2] = 'A';
-	}
-        if (fd.dwFileAttributes & FILE_ATTRIBUTE_READONLY) {
-	  flags[3] = 'R';
-	}
-        if (fd.dwFileAttributes & FILE_ATTRIBUTE_TEMPORARY) {
-	  flags[4] = 'T';
-	}
-        if (fd.dwFileAttributes & FILE_ATTRIBUTE_COMPRESSED) {
-	  flags[5] = 'C';
-	}
-        WCMD_output (fmt, flags, fd.cFileName);
-	for (count=0; count < 8; count++) flags[count] = ' ';
-      }
-    } while (FindNextFileW(hff, &fd) != 0);
-  }
-  FindClose (hff);
-}
-
 /*****************************************************************************
  * WCMD_setshow_default
  *
diff --git a/programs/cmd/wcmd.h b/programs/cmd/wcmd.h
index 462ecd91835..c4ece1308df 100644
--- a/programs/cmd/wcmd.h
+++ b/programs/cmd/wcmd.h
@@ -83,7 +83,6 @@ void WCMD_remove_dir (WCHAR *command);
 void WCMD_rename (void);
 void WCMD_run_program (WCHAR *command, int called);
 void WCMD_setlocal (const WCHAR *command);
-void WCMD_setshow_attrib (void);
 void WCMD_setshow_date (void);
 void WCMD_setshow_default (const WCHAR *command);
 void WCMD_setshow_env (WCHAR *command);
diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c
index ed1b46cbaf1..4f1a2f30744 100644
--- a/programs/cmd/wcmdmain.c
+++ b/programs/cmd/wcmdmain.c
@@ -1455,9 +1455,6 @@ void WCMD_execute (const WCHAR *command, const WCHAR *redirects,
 
     switch (i) {
 
-      case WCMD_ATTRIB:
-        WCMD_setshow_attrib ();
-        break;
       case WCMD_CALL:
         WCMD_call (p);
         break;
-- 
GitLab