[ATTRIB][CMD] Convert the 'attrib' command into a standalone executable
authorEric Kohl <eric.kohl@reactos.org>
Sat, 21 Sep 2019 09:39:01 +0000 (11:39 +0200)
committerEric Kohl <eric.kohl@reactos.org>
Sat, 21 Sep 2019 09:41:15 +0000 (11:41 +0200)
CORE-9444

53 files changed:
base/applications/cmdutils/CMakeLists.txt
base/applications/cmdutils/attrib/CMakeLists.txt [new file with mode: 0644]
base/applications/cmdutils/attrib/attrib.c [new file with mode: 0644]
base/applications/cmdutils/attrib/attrib.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/lang/cs-CZ.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/lang/de-DE.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/lang/el-GR.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/lang/en-US.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/lang/es-ES.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/lang/fr-FR.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/lang/hu-HU.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/lang/id-ID.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/lang/it-IT.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/lang/ja-JP.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/lang/no-NO.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/lang/pl-PL.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/lang/ro-RO.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/lang/ru-RU.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/lang/sk-SK.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/lang/sq-AL.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/lang/sv-SE.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/lang/tr-TR.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/lang/uk-UA.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/lang/zh-CN.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/lang/zh-TW.rc [new file with mode: 0644]
base/applications/cmdutils/attrib/resource.h [new file with mode: 0644]
base/shell/cmd/CMakeLists.txt
base/shell/cmd/attrib.c [deleted file]
base/shell/cmd/cmd.h
base/shell/cmd/cmdtable.c
base/shell/cmd/config.h
base/shell/cmd/lang/cs-CZ.rc
base/shell/cmd/lang/de-DE.rc
base/shell/cmd/lang/el-GR.rc
base/shell/cmd/lang/en-US.rc
base/shell/cmd/lang/es-ES.rc
base/shell/cmd/lang/fr-FR.rc
base/shell/cmd/lang/hu-HU.rc
base/shell/cmd/lang/id-ID.rc
base/shell/cmd/lang/it-IT.rc
base/shell/cmd/lang/ja-JP.rc
base/shell/cmd/lang/no-NO.rc
base/shell/cmd/lang/pl-PL.rc
base/shell/cmd/lang/ro-RO.rc
base/shell/cmd/lang/ru-RU.rc
base/shell/cmd/lang/sk-SK.rc
base/shell/cmd/lang/sq-AL.rc
base/shell/cmd/lang/sv-SE.rc
base/shell/cmd/lang/tr-TR.rc
base/shell/cmd/lang/uk-UA.rc
base/shell/cmd/lang/zh-CN.rc
base/shell/cmd/lang/zh-TW.rc
base/shell/cmd/resource.h

index 2ca3a2b..20f8529 100644 (file)
@@ -1,4 +1,5 @@
 add_subdirectory(at)
+add_subdirectory(attrib)
 add_subdirectory(chcp)
 add_subdirectory(clip)
 add_subdirectory(comp)
diff --git a/base/applications/cmdutils/attrib/CMakeLists.txt b/base/applications/cmdutils/attrib/CMakeLists.txt
new file mode 100644 (file)
index 0000000..a2b75f4
--- /dev/null
@@ -0,0 +1,8 @@
+
+include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/conutils)
+
+add_executable(attrib attrib.c attrib.rc)
+set_module_type(attrib win32cui UNICODE)
+target_link_libraries(attrib conutils ${PSEH_LIB})
+add_importlibs(attrib user32 msvcrt kernel32)
+add_cd_file(TARGET attrib DESTINATION reactos/system32 FOR all)
diff --git a/base/applications/cmdutils/attrib/attrib.c b/base/applications/cmdutils/attrib/attrib.c
new file mode 100644 (file)
index 0000000..141ad49
--- /dev/null
@@ -0,0 +1,392 @@
+/*
+ *  ATTRIB.C - attrib internal command.
+ *
+ *
+ *  History:
+ *
+ *    04-Dec-1998 Eric Kohl
+ *        started
+ *
+ *    09-Dec-1998 Eric Kohl
+ *        implementation works, except recursion ("attrib /s").
+ *
+ *    05-Jan-1999 Eric Kohl
+ *        major rewrite.
+ *        fixed recursion ("attrib /s").
+ *        started directory support ("attrib /s /d").
+ *        updated help text.
+ *
+ *    14-Jan-1999 Eric Kohl
+ *        Unicode ready!
+ *
+ *    19-Jan-1999 Eric Kohl
+ *        Redirection ready!
+ *
+ *    21-Jan-1999 Eric Kohl
+ *        Added check for invalid filenames.
+ *
+ *    23-Jan-1999 Eric Kohl
+ *        Added handling of multiple filenames.
+ *
+ *    02-Apr-2005 (Magnus Olsen <magnus@greatlord.com>)
+ *        Remove all hardcoded strings in En.rc
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <windef.h>
+#include <winbase.h>
+#include <wincon.h>
+#include <winuser.h>
+
+#include <conutils.h>
+
+#include "resource.h"
+
+CON_SCREEN StdOutScreen = INIT_CON_SCREEN(StdOut);
+
+static
+VOID
+ErrorMessage(
+    DWORD dwErrorCode,
+    LPWSTR szFormat,
+    ...)
+{
+    WCHAR szMsg[RC_STRING_MAX_SIZE];
+    WCHAR  szMessage[1024];
+    LPWSTR szError;
+    va_list arg_ptr;
+
+    if (dwErrorCode == ERROR_SUCCESS)
+        return;
+
+    if (szFormat)
+    {
+        va_start(arg_ptr, szFormat);
+        vswprintf(szMessage, szFormat, arg_ptr);
+        va_end(arg_ptr);
+    }
+
+    if (FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER,
+                       NULL, dwErrorCode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+                       (LPWSTR)&szError, 0, NULL))
+    {
+        ConPrintf(StdErr, L"%s %s\n", szError, szMessage);
+        if (szError)
+            LocalFree(szError);
+        return;
+    }
+
+    /* Fall back just in case the error is not defined */
+    LoadStringW(GetModuleHandle(NULL), STRING_CONSOLE_ERROR, szMsg, ARRAYSIZE(szMsg));
+    if (szFormat)
+        ConPrintf(StdErr, L"%s -- %s\n", szMsg, szMessage);
+    else
+        ConPrintf(StdErr, L"%s\n", szMsg);
+}
+
+static
+INT
+PrintAttribute(
+    LPWSTR pszPath,
+    LPWSTR pszFile,
+    BOOL bRecurse)
+{
+    WIN32_FIND_DATAW findData;
+    HANDLE hFind;
+    WCHAR  szFullName[MAX_PATH];
+    LPWSTR pszFileName;
+
+    /* prepare full file name buffer */
+    wcscpy(szFullName, pszPath);
+    pszFileName = szFullName + wcslen(szFullName);
+
+    /* display all subdirectories */
+    if (bRecurse)
+    {
+        /* append file name */
+        wcscpy(pszFileName, pszFile);
+
+        hFind = FindFirstFileW(szFullName, &findData);
+        if (hFind == INVALID_HANDLE_VALUE)
+        {
+            ErrorMessage(GetLastError(), pszFile);
+            return 1;
+        }
+
+        do
+        {
+            if (!(findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
+                continue;
+
+            if (!wcscmp(findData.cFileName, L".") ||
+                !wcscmp(findData.cFileName, L".."))
+                continue;
+
+            wcscpy(pszFileName, findData.cFileName);
+            wcscat(pszFileName, L"\\");
+            PrintAttribute(szFullName, pszFile, bRecurse);
+        }
+        while(FindNextFileW(hFind, &findData));
+        FindClose(hFind);
+    }
+
+    /* append file name */
+    wcscpy(pszFileName, pszFile);
+
+    /* display current directory */
+    hFind = FindFirstFileW(szFullName, &findData);
+    if (hFind == INVALID_HANDLE_VALUE)
+    {
+        ErrorMessage(GetLastError(), pszFile);
+        return 1;
+    }
+
+    do
+    {
+        if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
+            continue;
+
+        wcscpy(pszFileName, findData.cFileName);
+
+        ConPrintf(StdOut,
+                  L"%c  %c%c%c     %s\n",
+                  (findData.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE) ? L'A' : L' ',
+                  (findData.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM) ? L'S' : L' ',
+                  (findData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) ? L'H' : L' ',
+                  (findData.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? L'R' : L' ',
+                  szFullName);
+    }
+    while(FindNextFileW(hFind, &findData));
+    FindClose(hFind);
+
+    return 0;
+}
+
+
+static
+INT
+ChangeAttribute(
+    LPWSTR pszPath,
+    LPWSTR pszFile,
+    DWORD dwMask,
+    DWORD dwAttrib,
+    BOOL bRecurse,
+    BOOL bDirectories)
+{
+    WIN32_FIND_DATAW findData;
+    HANDLE hFind;
+    DWORD  dwAttribute;
+    WCHAR  szFullName[MAX_PATH];
+    LPWSTR pszFileName;
+
+    /* prepare full file name buffer */
+    wcscpy(szFullName, pszPath);
+    pszFileName = szFullName + wcslen(szFullName);
+
+    /* change all subdirectories */
+    if (bRecurse)
+    {
+        /* append file name */
+        wcscpy(pszFileName, L"*.*");
+
+        hFind = FindFirstFileW(szFullName, &findData);
+        if (hFind == INVALID_HANDLE_VALUE)
+        {
+            ErrorMessage(GetLastError(), pszFile);
+            return 1;
+        }
+
+        do
+        {
+            if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
+            {
+                if (!wcscmp(findData.cFileName, L".") ||
+                    !wcscmp(findData.cFileName, L".."))
+                    continue;
+
+                wcscpy(pszFileName, findData.cFileName);
+                wcscat(pszFileName, L"\\");
+
+                ChangeAttribute(szFullName, pszFile, dwMask,
+                                dwAttrib, bRecurse, bDirectories);
+            }
+        }
+        while (FindNextFileW(hFind, &findData));
+        FindClose(hFind);
+    }
+
+    /* append file name */
+    wcscpy(pszFileName, pszFile);
+
+    hFind = FindFirstFileW(szFullName, &findData);
+    if (hFind == INVALID_HANDLE_VALUE)
+    {
+        ErrorMessage(GetLastError(), pszFile);
+        return 1;
+    }
+
+    do
+    {
+        if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
+            continue;
+
+        wcscpy(pszFileName, findData.cFileName);
+
+        dwAttribute = GetFileAttributes (szFullName);
+
+        if (dwAttribute != 0xFFFFFFFF)
+        {
+            dwAttribute = (dwAttribute & ~dwMask) | dwAttrib;
+            SetFileAttributes(szFullName, dwAttribute);
+        }
+    }
+    while (FindNextFileW(hFind, &findData));
+    FindClose(hFind);
+
+    return 0;
+}
+
+
+int wmain(int argc, WCHAR *argv[])
+{
+    INT    i;
+    WCHAR  szPath[MAX_PATH];
+    WCHAR  szFileName [MAX_PATH];
+    BOOL   bRecurse = FALSE;
+    BOOL   bDirectories = FALSE;
+    DWORD  dwAttrib = 0;
+    DWORD  dwMask = 0;
+
+    /* Initialize the Console Standard Streams */
+    ConInitStdStreams();
+
+    /* Print help */
+    if (argc > 1 && wcscmp(argv[1], L"/?") == 0)
+    {
+        ConResPuts(StdOut, STRING_ATTRIB_HELP);
+        return 0;
+    }
+
+    /* check for options */
+    for (i = 1; i < argc; i++)
+    {
+        if (wcsicmp(argv[i], L"/s") == 0)
+            bRecurse = TRUE;
+        else if (wcsicmp(argv[i], L"/d") == 0)
+            bDirectories = TRUE;
+    }
+
+    /* create attributes and mask */
+    for (i = 1; i < argc; i++)
+    {
+        if (*argv[i] == L'+')
+        {
+            if (wcslen(argv[i]) != 2)
+            {
+                ConResPrintf(StdErr, STRING_ERROR_INVALID_PARAM_FORMAT, argv[i]);
+                return -1;
+            }
+
+            switch (towupper(argv[i][1]))
+            {
+                case L'A':
+                    dwMask   |= FILE_ATTRIBUTE_ARCHIVE;
+                    dwAttrib |= FILE_ATTRIBUTE_ARCHIVE;
+                    break;
+
+                case L'H':
+                    dwMask   |= FILE_ATTRIBUTE_HIDDEN;
+                    dwAttrib |= FILE_ATTRIBUTE_HIDDEN;
+                    break;
+
+                case L'R':
+                    dwMask   |= FILE_ATTRIBUTE_READONLY;
+                    dwAttrib |= FILE_ATTRIBUTE_READONLY;
+                    break;
+
+                case L'S':
+                    dwMask   |= FILE_ATTRIBUTE_SYSTEM;
+                    dwAttrib |= FILE_ATTRIBUTE_SYSTEM;
+                    break;
+
+                default:
+                    ConResPrintf(StdErr, STRING_ERROR_INVALID_PARAM_FORMAT, argv[i]);
+                    return -1;
+            }
+        }
+        else if (*argv[i] == L'-')
+        {
+            if (wcslen(argv[i]) != 2)
+            {
+                ConResPrintf(StdErr, STRING_ERROR_INVALID_PARAM_FORMAT, argv[i]);
+                return -1;
+            }
+
+            switch (towupper(argv[i][1]))
+            {
+                case L'A':
+                    dwMask   |= FILE_ATTRIBUTE_ARCHIVE;
+                    dwAttrib &= ~FILE_ATTRIBUTE_ARCHIVE;
+                    break;
+
+                case L'H':
+                    dwMask   |= FILE_ATTRIBUTE_HIDDEN;
+                    dwAttrib &= ~FILE_ATTRIBUTE_HIDDEN;
+                    break;
+
+                case L'R':
+                    dwMask   |= FILE_ATTRIBUTE_READONLY;
+                    dwAttrib &= ~FILE_ATTRIBUTE_READONLY;
+                    break;
+
+                case L'S':
+                    dwMask   |= FILE_ATTRIBUTE_SYSTEM;
+                    dwAttrib &= ~FILE_ATTRIBUTE_SYSTEM;
+                    break;
+
+                default:
+                    ConResPrintf(StdErr, STRING_ERROR_INVALID_PARAM_FORMAT, argv[i]);
+                    return -1;
+            }
+        }
+    }
+
+    if (argc == 1)
+    {
+        DWORD len;
+
+        len = GetCurrentDirectory(MAX_PATH, szPath);
+        if (szPath[len-1] != L'\\')
+        {
+            szPath[len] = L'\\';
+            szPath[len + 1] = UNICODE_NULL;
+        }
+        wcscpy(szFileName, L"*.*");
+        PrintAttribute(szPath, szFileName, bRecurse);
+        return 0;
+    }
+
+    /* get full file name */
+    for (i = 1; i < argc; i++)
+    {
+        if ((*argv[i] != L'+') && (*argv[i] != L'-') && (*argv[i] != L'/'))
+        {
+            LPWSTR p;
+
+            GetFullPathName(argv[i], MAX_PATH, szPath, NULL);
+            p = wcsrchr(szPath, L'\\') + 1;
+            wcscpy(szFileName, p);
+            *p = L'\0';
+
+            if (dwMask == 0)
+                PrintAttribute(szPath, szFileName, bRecurse);
+            else
+                ChangeAttribute(szPath, szFileName, dwMask,
+                         dwAttrib, bRecurse, bDirectories);
+        }
+    }
+
+    return 0;
+}
diff --git a/base/applications/cmdutils/attrib/attrib.rc b/base/applications/cmdutils/attrib/attrib.rc
new file mode 100644 (file)
index 0000000..a199d75
--- /dev/null
@@ -0,0 +1,77 @@
+#include <windef.h>
+
+#include "resource.h"
+
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+
+#define REACTOS_STR_FILE_DESCRIPTION    "ReactOS Attribute Command"
+#define REACTOS_STR_INTERNAL_NAME       "attrib"
+#define REACTOS_STR_ORIGINAL_FILENAME   "attrib.exe"
+#include <reactos/version.rc>
+
+/* UTF-8 */
+#pragma code_page(65001)
+
+#ifdef LANGUAGE_CS_CZ
+    #include "lang/cs-CZ.rc"
+#endif
+#ifdef LANGUAGE_DE_DE
+    #include "lang/de-DE.rc"
+#endif
+#ifdef LANGUAGE_EL_GR
+    #include "lang/el-GR.rc"
+#endif
+#ifdef LANGUAGE_EN_US
+    #include "lang/en-US.rc"
+#endif
+#ifdef LANGUAGE_ES_ES
+    #include "lang/es-ES.rc"
+#endif
+#ifdef LANGUAGE_FR_FR
+    #include "lang/fr-FR.rc"
+#endif
+#ifdef LANGUAGE_HU_HU
+    #include "lang/hu-HU.rc"
+#endif
+#ifdef LANGUAGE_ID_ID
+    #include "lang/id-ID.rc"
+#endif
+#ifdef LANGUAGE_IT_IT
+    #include "lang/it-IT.rc"
+#endif
+#ifdef LANGUAGE_NB_NO
+    #include "lang/no-NO.rc"
+#endif
+#ifdef LANGUAGE_JA_JP
+    #include "lang/ja-JP.rc"
+#endif
+#ifdef LANGUAGE_PL_PL
+    #include "lang/pl-PL.rc"
+#endif
+#ifdef LANGUAGE_RO_RO
+    #include "lang/ro-RO.rc"
+#endif
+#ifdef LANGUAGE_RU_RU
+    #include "lang/ru-RU.rc"
+#endif
+#ifdef LANGUAGE_SK_SK
+    #include "lang/sk-SK.rc"
+#endif
+#ifdef LANGUAGE_SV_SE
+    #include "lang/sv-SE.rc"
+#endif
+#ifdef LANGUAGE_SQ_AL
+    #include "lang/sq-AL.rc"
+#endif
+#ifdef LANGUAGE_TR_TR
+    #include "lang/tr-TR.rc"
+#endif
+#ifdef LANGUAGE_UK_UA
+    #include "lang/uk-UA.rc"
+#endif
+#ifdef LANGUAGE_ZH_CN
+    #include "lang/zh-CN.rc"
+#endif
+#ifdef LANGUAGE_ZH_TW
+    #include "lang/zh-TW.rc"
+#endif
diff --git a/base/applications/cmdutils/attrib/lang/cs-CZ.rc b/base/applications/cmdutils/attrib/lang/cs-CZ.rc
new file mode 100644 (file)
index 0000000..d67fffd
--- /dev/null
@@ -0,0 +1,25 @@
+/* FILE:       base/shell/cmd/lang/cs-CZ.rc
+ * TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com)
+ * UPDATED:    2015-04-12
+ */
+
+LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
+
+STRINGTABLE
+BEGIN
+    STRING_ATTRIB_HELP "Displays or changes file attributes.\n\n\
+ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] file ...\n\
+       [/S [/D]]\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\
+  /S  Processes matching files in the current directory\n\
+      and all subdirectories\n\
+  /D  Processes directories as well\n\n\
+Type ATTRIB without a parameter to display the attributes of all files.\n"
+    STRING_CONSOLE_ERROR "Neznámá chyba: %d\n"
+    STRING_ERROR_INVALID_PARAM_FORMAT "Neplatný formát parametru - %s\n"
+END
diff --git a/base/applications/cmdutils/attrib/lang/de-DE.rc b/base/applications/cmdutils/attrib/lang/de-DE.rc
new file mode 100644 (file)
index 0000000..4479118
--- /dev/null
@@ -0,0 +1,22 @@
+/* German language file by Klemens Friedl <frik85> 2005-06-03 */
+
+LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
+
+STRINGTABLE
+BEGIN
+    STRING_ATTRIB_HELP "Zeigt Dateiattribute an oder ändert sie.\n\n\
+ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] Dateiname ...\n\
+       [/S [/D]]\n\n\
+  +   Setzt ein Attribut\n\
+  -   Löscht ein Attribut\n\
+  R   Attribut für 'schreibgeschützte Datei'\n\
+  A   Attribut für 'zu archivierende Datei'\n\
+  S   Attribut für 'Systemdatei'\n\
+  H   Attribut für 'versteckte Datei'\n\
+ /S   Verarbeitet übereinstimmende Dateien im aktuellen Ordner\n\
+      und in allen Unterordnern.\n\
+  /D  Verarbeitet auch die Ordner.\n\n\
+ATTRIB ohne Parameter zeigt die derzeit gesetzten Attribute aller Dateien an."
+    STRING_CONSOLE_ERROR "Unbekannter Fehler: %d\n"
+    STRING_ERROR_INVALID_PARAM_FORMAT "Ungültiges Parameterformat - %s\n"
+END
diff --git a/base/applications/cmdutils/attrib/lang/el-GR.rc b/base/applications/cmdutils/attrib/lang/el-GR.rc
new file mode 100644 (file)
index 0000000..dcfc19f
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * Αρχική έκδοση - Ημιτελής.
+ * Ελληνική μετάφραση - Απόστολος Αλεξιάδης
+ */
+
+LANGUAGE LANG_GREEK, SUBLANG_DEFAULT
+
+STRINGTABLE
+BEGIN
+    STRING_ATTRIB_HELP "Προβολή ή αλλαγή των χαρακτηριστικών των αρχείων.\n\n\
+ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] file ...\n\
+       [/S [/D]]\n\n\
+  +   Ορισμός ενός χαρακτηριστικού.\n\
+  -   Απαλοιφή ενός χαρακτηριστικού.\n\
+  R   Χαρακτηριστικό αρχείου μόνο για ανάγνωση.\n\
+  A   Χαρακτηριστικό φύλαξης αρχείου.\n\
+  S   Χαρακτηριστικό αρχείου συστήματος.\n\
+  H   Χαρακτηριστικό κρυφού αρχείου.\n\
+  /S  Επεξεργασία των αρχείων που ταιριάζουν στον τρέχοντα κατάλογο\n\
+      και σε όλους τους υποκαταλόγους.\n\
+  /D  Επεξεργασία καταλόγων επίσης.\n\n\
+Πληκτρολογήστε ATTRIB χωρίς παράμετρο, για να εμφανιστούν τα χαρακτηριστικά όλων των αρχείων.\n"
+    STRING_CONSOLE_ERROR "Άγνωστο σφάλμα: %d\n"
+    STRING_ERROR_INVALID_PARAM_FORMAT "Μη έγκυρο φορμά παραμέτρου - %s\n"
+END
diff --git a/base/applications/cmdutils/attrib/lang/en-US.rc b/base/applications/cmdutils/attrib/lang/en-US.rc
new file mode 100644 (file)
index 0000000..692b04c
--- /dev/null
@@ -0,0 +1,20 @@
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+
+STRINGTABLE
+BEGIN
+    STRING_ATTRIB_HELP "Displays or changes file attributes.\n\n\
+ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] file ...\n\
+       [/S [/D]]\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\
+  /S  Processes matching files in the current directory\n\
+      and all subdirectories\n\
+  /D  Processes directories as well\n\n\
+Type ATTRIB without a parameter to display the attributes of all files.\n"
+    STRING_CONSOLE_ERROR "Unknown error: %d\n"
+    STRING_ERROR_INVALID_PARAM_FORMAT "Invalid parameter format - %s\n"
+END
diff --git a/base/applications/cmdutils/attrib/lang/es-ES.rc b/base/applications/cmdutils/attrib/lang/es-ES.rc
new file mode 100644 (file)
index 0000000..8271d47
--- /dev/null
@@ -0,0 +1,22 @@
+/* Spanish translation by HUMA2000, Jose Pedro Fernández Pascual e Ismael Ferreras Morezuelas (Swyter) */
+
+LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
+
+STRINGTABLE
+BEGIN
+    STRING_ATTRIB_HELP "Muestra o cambia los atributos de los archivos.\n\n\
+ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] file ...\n\
+       [/S [/D]]\n\n\
+  +   Añade un atributo\n\
+  -   Borra un atributo\n\
+  R   Atributo de sólo lectura\n\
+  A   Atributo de archivo\n\
+  S   Atributo de archivo de sistema\n\
+  H   Atributo de archivo oculto\n\
+  /S  Procesa los archivos coincidentes en el directorio actual \n\
+      y sus subdirectorios\n\
+  /D  Procesa también los directorios\n\n\
+Type ATTRIB without a parameter to display the attributes of all files.\n"
+    STRING_CONSOLE_ERROR "Error desconocido: %d\n"
+    STRING_ERROR_INVALID_PARAM_FORMAT "Formato de parámetro erróneo - %s\n"
+END
diff --git a/base/applications/cmdutils/attrib/lang/fr-FR.rc b/base/applications/cmdutils/attrib/lang/fr-FR.rc
new file mode 100644 (file)
index 0000000..d330ba5
--- /dev/null
@@ -0,0 +1,22 @@
+/* French translation by Sylvain Pétréolle, Pierre Schweitzer */
+
+LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
+
+STRINGTABLE
+BEGIN
+    STRING_ATTRIB_HELP "Affiche ou change des attributs de fichiers.\n\n\
+ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] file ...\n\
+       [/S [/D]]\n\n\
+  +   Positionne un attribut\n\
+  -   Enlève un attribut\n\
+  R   Fichier en lecture seule\n\
+  A   Fichier archive\n\
+  S   Fichier système\n\
+  H   Fichier caché\n\
+  /S  Traite les fichiers correspondants dans le répertoire courant\n\
+        et tous les sous-répertoires\n\
+  /D  Traite également les répertoires\n\n\
+Taper ATTRIB sans paramètre pour afficher les attributs de tous les fichiers."
+    STRING_CONSOLE_ERROR "Erreur inconnue : %d\n"
+    STRING_ERROR_INVALID_PARAM_FORMAT "Format de paramètre incorrect - %s\n"
+END
diff --git a/base/applications/cmdutils/attrib/lang/hu-HU.rc b/base/applications/cmdutils/attrib/lang/hu-HU.rc
new file mode 100644 (file)
index 0000000..37d8d22
--- /dev/null
@@ -0,0 +1,22 @@
+/* Hungarian translation by Robert Horvath (talley at cubeclub.hu) 2005 */
+
+LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
+
+STRINGTABLE
+BEGIN
+    STRING_ATTRIB_HELP "Állományok attribútumok megjelenítése vagy beállításai.\n\n\
+ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] állomány ...\n\
+       [/S [/D]]\n\n\
+  +   bekapcsol egy attribútumot\n\
+  -   kikapcsol egy attribútumot\n\
+  R   Írásvédett állomány\n\
+  A   Archiválandó állomány\n\
+  S   Rendszer állomány\n\
+  H   Rejtett állomány\n\
+  /S  Minden állomány módosítása a mappában és minden\n\
+      almappábanban\n\
+  /D  Mappákra is érvényesíti\n\n\
+Ha ATTRIB-ot paraméter nélkül írod be, megjeleníti a mappában található összes állományt és annak attribútumát.\n"
+    STRING_CONSOLE_ERROR "Ismeretlen hiba: %d\n"
+    STRING_ERROR_INVALID_PARAM_FORMAT "Érvénytelen paraméter megadás - %s\n"
+END
diff --git a/base/applications/cmdutils/attrib/lang/id-ID.rc b/base/applications/cmdutils/attrib/lang/id-ID.rc
new file mode 100644 (file)
index 0000000..74ac009
--- /dev/null
@@ -0,0 +1,22 @@
+/* Indonesian language file by Zaenal Mutaqin <ade999 at gmail dot com> 2007-02-15 */
+
+LANGUAGE LANG_INDONESIAN, SUBLANG_DEFAULT
+
+STRINGTABLE
+BEGIN
+    STRING_ATTRIB_HELP "Menampilkan atau mengubah atribut file.\n\n\
+ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] file ...\n\
+       [/S [/D]]\n\n\
+  +   Menyetel atribut\n\
+  -   Membersihkan atribut\n\
+  R   Atribut file Hanya-baca\n\
+  A   Atribut file Arsip\n\
+  S   Atribut file Sistem\n\
+  H   Atribut file Tersembunyi\n\
+  /S  Proses file yang sama dalam direktori dan semua subdirektori\n\
+      saat ini\n\
+  /D  Proses direktori juga\n\n\
+Ketik ATTRIB tanpa parameter untuk menampilkan atribut dari semua file.\n"
+    STRING_CONSOLE_ERROR "Kesalahan tidak dikenal: %d\n"
+    STRING_ERROR_INVALID_PARAM_FORMAT "Format parameter tidak benar - %s\n"
+END
diff --git a/base/applications/cmdutils/attrib/lang/it-IT.rc b/base/applications/cmdutils/attrib/lang/it-IT.rc
new file mode 100644 (file)
index 0000000..70d47fc
--- /dev/null
@@ -0,0 +1,20 @@
+LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
+
+STRINGTABLE
+BEGIN
+    STRING_ATTRIB_HELP "Visualizza o modifica gli attributi dei file.\n\n\
+ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] file ...\n\
+       [/S [/D]]\n\n\
+  +   Attiva un attributo\n\
+  -   Toglie un attributo\n\
+  R   Attributo di file di sola lettura\n\
+  A   Attributo di file di archivio\n\
+  S   Attributo di file di sistema\n\
+  H   Attributo di file nascosto\n\
+  /S  Tratta i file indicati nella cartella corrente e in\n\
+       tutte le sottocartelle\n\
+  /D  Tratta anche le cartelle\n\n\
+Scrivi ATTRIB senza parametri per visualizzare gli attributi di tutti i file.\n"
+    STRING_CONSOLE_ERROR "Errore sconosciuto: %d\n"
+    STRING_ERROR_INVALID_PARAM_FORMAT "Formato dei parametri non valido - %s\n"
+END
diff --git a/base/applications/cmdutils/attrib/lang/ja-JP.rc b/base/applications/cmdutils/attrib/lang/ja-JP.rc
new file mode 100644 (file)
index 0000000..79e2c76
--- /dev/null
@@ -0,0 +1,20 @@
+LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
+
+STRINGTABLE
+BEGIN
+    STRING_ATTRIB_HELP "ファイル属性を表示または変更します。\n\n\
+ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] [ファイル] ...\n\
+       [/S [/D]]\n\n\
+  +   属性を設定します。\n\
+  -   属性を解除します。\n\
+  R   読みとり専用属性。\n\
+  A   アーカイブ属性。\n\
+  S   システム ファイル属性。\n\
+  H   隠しファイル属性。\n\
+  /S  現在のフォルダとすべてのサブフォルダの一致するファイルを\n\
+      処理します。\n\
+  /D  フォルダも処理します。\n\n\
+パラメータを指定しないで ATTRIB と入力すると、すべてのファイルの属性を表示します。\n"
+    STRING_CONSOLE_ERROR "不明なエラー: %d\n"
+    STRING_ERROR_INVALID_PARAM_FORMAT "無効なパラメータの書式です。 - %s\n"
+END
diff --git a/base/applications/cmdutils/attrib/lang/no-NO.rc b/base/applications/cmdutils/attrib/lang/no-NO.rc
new file mode 100644 (file)
index 0000000..095e18b
--- /dev/null
@@ -0,0 +1,20 @@
+LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL
+
+STRINGTABLE
+BEGIN
+    STRING_ATTRIB_HELP "Viser eller endrer filattributtene.\n\n\
+ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] fil ...\n\
+       [/S [/D]]\n\n\
+  +   Setter et attributt\n\
+  -   Fjerner et attributt\n\
+  R   Attributt: Skrivebeskyttet.\n\
+  A   Attributt: Arkiver.\n\
+  S   Attributt: System.\n\
+  H   Attributt: Skjult.\n\
+  /S  Behandler tilsvarende filer i gjeldende mappe\n\
+      og alle undermapper.\n\
+  /D  Bearbeider også mapper.\n\n\
+Skriv ATTRIB uten parametere for å vise attributtene til alle filer.\n"
+    STRING_CONSOLE_ERROR "Ukjent feil: %d\n"
+    STRING_ERROR_INVALID_PARAM_FORMAT "Ugyldig parameter format - %s\n"
+END
diff --git a/base/applications/cmdutils/attrib/lang/pl-PL.rc b/base/applications/cmdutils/attrib/lang/pl-PL.rc
new file mode 100644 (file)
index 0000000..42543e6
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ *    Translated by Caemyr - Olaf Siejka (Jan, 2008)
+ *    Updated by niski - Maciej Bialas (Mar, 2010)
+ *    Use ReactOS forum PM or IRC to contact me
+ *    http://www.reactos.org
+ *    IRC: irc.freenode.net #reactos-pl;
+ *    UTF-8 conversion by Caemyr (May, 2011)
+ */
+
+LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
+
+STRINGTABLE
+BEGIN
+    STRING_ATTRIB_HELP "Wyświetla lub zmienia atrybuty plików.\n\n\
+ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] nazwa_pliku ...\n\
+       [/S [/D]]\n\n\
+  +   Ustawia atrybut\n\
+  -   Czyści atrybut\n\
+  R   Atrybut pliku tylko do odczytu\n\
+  A   Atrybut pliku archiwalnego\n\
+  S   Atrybut pliku systemowego\n\
+  H   Atrybut pliku ukrytego\n\
+  /S  Przetwarza wszystkie, pasujące pliki w bieżącym katalogu\n\
+      i we wszystkich podkatalogach\n\
+  /D  Przetwarza również katalogi\n\n\
+Wpisz ATTRIB bez żadnego parametru, by wyświetlić atrybuty wszystkich plików.\n"
+    STRING_CONSOLE_ERROR "Nieznany błąd: %d\n"
+    STRING_ERROR_INVALID_PARAM_FORMAT "Niewłaściwy format parametru - %s\n"
+END
diff --git a/base/applications/cmdutils/attrib/lang/ro-RO.rc b/base/applications/cmdutils/attrib/lang/ro-RO.rc
new file mode 100644 (file)
index 0000000..73eed7e
--- /dev/null
@@ -0,0 +1,22 @@
+/* Translator: Ștefan Fulea (stefan dot fulea at mail dot com) */
+
+LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
+
+STRINGTABLE
+BEGIN
+    STRING_ATTRIB_HELP "Afișează sau modifică atributele de fișiere.\n\n\
+ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] fișier ...\n\
+       [/S [/D]]\n\n\
+  +   Consimte atributul\n\
+  -   Reprobă atributul\n\
+  R   Atributul fișierelor nemodificabile\n\
+  A   Atributul fișierelor arhivabile\n\
+  S   Atributul fișierelor de sistem\n\
+  H   Atributul fișierelor ascunse\n\
+  /S  Aplică și pentru fișierele din subdirectoare\n\
+  /D  Aplică și pentru directoare\n\n\
+Tastați ATTRIB fără argumente pentru afișarea atributelor pentru\n\
+toate fișierele.\n"
+    STRING_CONSOLE_ERROR "Eroare necunoscută: %d\n"
+    STRING_ERROR_INVALID_PARAM_FORMAT "Formatul argumentului este eronat - %s\n"
+END
diff --git a/base/applications/cmdutils/attrib/lang/ru-RU.rc b/base/applications/cmdutils/attrib/lang/ru-RU.rc
new file mode 100644 (file)
index 0000000..8cea9af
--- /dev/null
@@ -0,0 +1,22 @@
+/* Russian translation by Andrey Korotaev (unC0Rr@inbox.ru) & Aleksey Bragin (aleksey@reactos.org) & Kudratov Olimjon (olim98@bk.ru)*/
+
+LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
+
+STRINGTABLE
+BEGIN
+    STRING_ATTRIB_HELP "Вывод и изменение атрибутов файлов.\n\n\
+ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] файл ...\n\
+       [/S [/D]]\n\n\
+  +   Установка атрибута.\n\
+  -   Снятие атрибута.\n\
+  R   Атрибут ""Только чтение"".\n\
+  A   Атрибут ""Архивный"".\n\
+  S   Атрибут ""Системный"".\n\
+  H   Атрибут ""Скрытый"".\n\
+  /S  Обработка файлов с указанными именами в текущей папке\n\
+      и во всех ее подпапках.\n\
+  /D  Обработка и файлов, и папок.\n\n\
+Команда ATTRIB без параметров выводит атрибуты всех файлов.\n"
+    STRING_CONSOLE_ERROR "Неизвестная ошибка: %d\n"
+    STRING_ERROR_INVALID_PARAM_FORMAT "Неверный формат параметра - %s\n"
+END
diff --git a/base/applications/cmdutils/attrib/lang/sk-SK.rc b/base/applications/cmdutils/attrib/lang/sk-SK.rc
new file mode 100644 (file)
index 0000000..281a003
--- /dev/null
@@ -0,0 +1,26 @@
+/* Slovak translation for CMD
+ * TRANSLATOR: Mário Kačmár /Mario Kacmar/ aka Kario (kario@szm.sk)
+ * DATE OF TR: 21-03-2009
+ * LastChange: 10-08-2010
+ */
+
+LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
+
+STRINGTABLE
+BEGIN
+    STRING_ATTRIB_HELP "Displays or changes file attributes.\n\n\
+ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] file ...\n\
+       [/S [/D]]\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\
+  /S  Processes matching files in the current directory\n\
+      and all subdirectories\n\
+  /D  Processes directories as well\n\n\
+Type ATTRIB without a parameter to display the attributes of all files.\n"
+    STRING_CONSOLE_ERROR "Neznáma chyba: %d\n"
+    STRING_ERROR_INVALID_PARAM_FORMAT "Invalid parameter format - %s\n"
+END
diff --git a/base/applications/cmdutils/attrib/lang/sq-AL.rc b/base/applications/cmdutils/attrib/lang/sq-AL.rc
new file mode 100644 (file)
index 0000000..ca39be0
--- /dev/null
@@ -0,0 +1,24 @@
+/* TRANSLATOR : Ardit Dani (Ard1t) (ardit.dani@gmail.com) 
+ * DATE OF TR:  29-11-2013
+*/
+
+LANGUAGE LANG_ALBANIAN, SUBLANG_NEUTRAL
+
+STRINGTABLE
+BEGIN
+    STRING_ATTRIB_HELP "Shfaq ose ndryshu atributet e dokumentave.\n\n\
+ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] file ...\n\
+       [/S [/D]]\n\n\
+  +   Vendos nje atribute\n\
+  -   Pastron një atribute\n\
+  R   Lexo-vetem atributet e dokumentave\n\
+  A   Atributet e dokumentave në arkiv\n\
+  S   Atributet e dokumentave të sistemit\n\
+  H   Atributet e dokumentave te fshehur\n\
+  /S  Procesi i përputhjes së dokumentave ne skedën aktuale\n\
+      dhe të gjitha nënskedat\n\
+  /D  Proçeso skedat gjithashtu\n\n\
+Shkruaj ATTRIB pa një parameter për të shfaque atributet e të gjithë dokumentave.\n"
+    STRING_CONSOLE_ERROR "Error i paditur: %d\n"
+    STRING_ERROR_INVALID_PARAM_FORMAT "Parametrat e formatit invalid - %s\n"
+END
diff --git a/base/applications/cmdutils/attrib/lang/sv-SE.rc b/base/applications/cmdutils/attrib/lang/sv-SE.rc
new file mode 100644 (file)
index 0000000..236baf7
--- /dev/null
@@ -0,0 +1,20 @@
+LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
+
+STRINGTABLE
+BEGIN
+    STRING_ATTRIB_HELP "Visar eller ändrar filattributen.\n\n\
+ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] fil ...\n\
+       [/S [/D]]\n\n\
+  +   Sätter ett attribut\n\
+  -   Rensar ett attribut\n\
+  R   Attribut: Skrivskyddad.\n\
+  A   Attribut: Arkiverad.\n\
+  S   Attribut: System.\n\
+  H   Attribut: Dold.\n\
+  /S  Behandlar matchande filer i den aktuella mappen\n\
+      och alla undermappar.\n\
+  /D  Bearbetar även mappar.\n\n\
+Skriv ATTRIB utan parametrar för att visa attributten för alla filer.\n"
+    STRING_CONSOLE_ERROR "Okänt fel: %d\n"
+    STRING_ERROR_INVALID_PARAM_FORMAT "Ogiltigt parameterformat - %s\n"
+END
diff --git a/base/applications/cmdutils/attrib/lang/tr-TR.rc b/base/applications/cmdutils/attrib/lang/tr-TR.rc
new file mode 100644 (file)
index 0000000..d96c764
--- /dev/null
@@ -0,0 +1,22 @@
+/* TRANSLATOR: 2015 Erdem Ersoy (eersoy93) (erdemersoy [at] erdemersoy [dot] net) */
+
+LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
+
+STRINGTABLE
+BEGIN
+    STRING_ATTRIB_HELP "Kütük öz niteliklerini görüntüler ya da değiştirir.\n\n\
+ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] kütük ...\n\
+       [/S [/D]]\n\n\
+  +   Bir öz nitelik ayarlar\n\
+  -   Bir öz nitelik siler\n\
+  R   Yalnızca okunur kütük öz niteliği\n\
+  A   Belgelik kütük öz niteliği\n\
+  S   Dizge kütük öz niteliği\n\
+  H   Gizli kütük öz niteliği\n\
+  /S  Şimdiki dizindeki ve tüm alt dizinlerdeki kütükleri eşlemeyi yapar\n\
+  /D  Dizinleri de yap\n\n\
+Tüm kütüklerin öz niteliklerini görüntülemek için bir değişken olmadan ATTRIB\n\
+yazınız.\n"
+    STRING_CONSOLE_ERROR "Bilinmeyen yanlışlık: %d\n"
+    STRING_ERROR_INVALID_PARAM_FORMAT "Geçersiz değişken biçimi - %s\n"
+END
diff --git a/base/applications/cmdutils/attrib/lang/uk-UA.rc b/base/applications/cmdutils/attrib/lang/uk-UA.rc
new file mode 100644 (file)
index 0000000..6591e43
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * PROJECT:     Command-line interface
+ * LICENSE:     GPL - See COPYING in the top level directory
+ * FILE:        base/shell/cmd/lang/uk-UA.rc
+ * PURPOSE:     Ukraianian Language File for Command-line interface
+ * TRANSLATORS: Artem Reznikov, Igor Paliychuk
+ */
+
+LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
+
+STRINGTABLE
+BEGIN
+    STRING_ATTRIB_HELP "Відображення або зміна атрибутів файлу.\n\n\
+ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] файл ...\n\
+       [/S [/D]]\n\n\
+  +   Встановлення атрибуту\n\
+  -   Зняття атрибуту\n\
+  R   Атрибут файлу ""Лише читання""\n\
+  A   Атрибут файлу ""Архiвний""\n\
+  S   Атрибут файлу ""Системний""\n\
+  H   Атрибут файлу ""Прихований""\n\
+  /S  Обробка файлiв зi вказаними iменами в поточнiй тецi\n\
+      i у всіх її пiдтеках\n\
+  /D  Обробка також i тек\n\n\
+Введiть ATTRIB без параметра, щоб вивести атрибути всiх файлiв.\n"
+    STRING_CONSOLE_ERROR "Невiдома помилка: %d\n"
+    STRING_ERROR_INVALID_PARAM_FORMAT "Невiрний формат параметра - %s\n"
+END
diff --git a/base/applications/cmdutils/attrib/lang/zh-CN.rc b/base/applications/cmdutils/attrib/lang/zh-CN.rc
new file mode 100644 (file)
index 0000000..a4d10f2
--- /dev/null
@@ -0,0 +1,21 @@
+/* Simplified Chinese translation by Song Fuchang (0xfc) <sfc_0@yahoo.com.cn> 2011 */
+
+LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
+
+STRINGTABLE
+BEGIN
+    STRING_ATTRIB_HELP "显示或更改文件属性。\n\n\
+ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] 文件 ...\n\
+       [/S [/D]]\n\n\
+  +   设置一个属性\n\
+  -   清除一个属性\n\
+  R   只读属性\n\
+  A   归档属性\n\
+  S   系统属性\n\
+  H   隐藏属性\n\
+  /S  处理当前目录和所有子目录下的所有匹配文件\n\
+  /D  同时处理目录\n\n\
+执行不带参数的 ATTRIB 将会显示所有文件的属性。\n"
+    STRING_CONSOLE_ERROR "未知错误:%d\n"
+    STRING_ERROR_INVALID_PARAM_FORMAT "无效的参数格式 - %s\n"
+END
diff --git a/base/applications/cmdutils/attrib/lang/zh-TW.rc b/base/applications/cmdutils/attrib/lang/zh-TW.rc
new file mode 100644 (file)
index 0000000..c1fb320
--- /dev/null
@@ -0,0 +1,22 @@
+/* Traditional Chinese translation by Henry Tang Ih 2016 (henrytang2@hotmail.com) */
+/* Improved by Luo Yufan 2019 <njlyf2011@hotmail.com> */
+
+LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
+
+STRINGTABLE
+BEGIN
+    STRING_ATTRIB_HELP "顯示或更改檔案屬性。\n\n\
+ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] 檔案 ...\n\
+       [/S [/D]]\n\n\
+  +   設定一個屬性\n\
+  -   清除一個屬性\n\
+  R   只讀屬性\n\
+  A   歸檔屬性\n\
+  S   系統屬性\n\
+  H   隱藏屬性\n\
+  /S  處理當前目錄和所有子目錄下的所有匹配檔案\n\
+  /D  同時處理目錄\n\n\
+執行不帶參數的 ATTRIB 將會顯示所有檔案的屬性。\n"
+    STRING_CONSOLE_ERROR "未知錯誤:%d\n"
+    STRING_ERROR_INVALID_PARAM_FORMAT "無效的參數格式 - %s\n"
+END 
\ No newline at end of file
diff --git a/base/applications/cmdutils/attrib/resource.h b/base/applications/cmdutils/attrib/resource.h
new file mode 100644 (file)
index 0000000..3b44432
--- /dev/null
@@ -0,0 +1,7 @@
+#pragma once
+
+#define RC_STRING_MAX_SIZE 3072
+
+#define STRING_ERROR_INVALID_PARAM_FORMAT 107
+#define STRING_CONSOLE_ERROR 316
+#define STRING_ATTRIB_HELP 600
index 351a7e0..99fdd19 100644 (file)
@@ -9,7 +9,6 @@ include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/conutils)
 list(APPEND SOURCE
     alias.c
     assoc.c
-    attrib.c
     batch.c
     beep.c
     call.c
diff --git a/base/shell/cmd/attrib.c b/base/shell/cmd/attrib.c
deleted file mode 100644 (file)
index dfc0f1a..0000000
+++ /dev/null
@@ -1,344 +0,0 @@
-/*
- *  ATTRIB.C - attrib internal command.
- *
- *
- *  History:
- *
- *    04-Dec-1998 Eric Kohl
- *        started
- *
- *    09-Dec-1998 Eric Kohl
- *        implementation works, except recursion ("attrib /s").
- *
- *    05-Jan-1999 Eric Kohl
- *        major rewrite.
- *        fixed recursion ("attrib /s").
- *        started directory support ("attrib /s /d").
- *        updated help text.
- *
- *    14-Jan-1999 Eric Kohl
- *        Unicode ready!
- *
- *    19-Jan-1999 Eric Kohl
- *        Redirection ready!
- *
- *    21-Jan-1999 Eric Kohl
- *        Added check for invalid filenames.
- *
- *    23-Jan-1999 Eric Kohl
- *        Added handling of multiple filenames.
- *
- *    02-Apr-2005 (Magnus Olsen <magnus@greatlord.com>)
- *        Remove all hardcoded strings in En.rc
- */
-
-#include "precomp.h"
-
-#ifdef INCLUDE_CMD_ATTRIB
-
-static VOID
-PrintAttribute (LPTSTR pszPath, LPTSTR pszFile, BOOL bRecurse)
-{
-    WIN32_FIND_DATA findData;
-    HANDLE hFind;
-    TCHAR  szFullName[MAX_PATH];
-    LPTSTR pszFileName;
-
-    /* prepare full file name buffer */
-    _tcscpy (szFullName, pszPath);
-    pszFileName = szFullName + _tcslen (szFullName);
-
-    /* display all subdirectories */
-    if (bRecurse)
-    {
-        /* append file name */
-        _tcscpy (pszFileName, pszFile);
-
-        hFind = FindFirstFile (szFullName, &findData);
-        if (hFind == INVALID_HANDLE_VALUE)
-        {
-            ErrorMessage (GetLastError (), pszFile);
-            return;
-        }
-
-        do
-        {
-            if (!(findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
-                continue;
-
-            if (!_tcscmp (findData.cFileName, _T(".")) ||
-                !_tcscmp (findData.cFileName, _T("..")))
-                continue;
-
-            _tcscpy (pszFileName, findData.cFileName);
-            _tcscat (pszFileName, _T("\\"));
-            PrintAttribute (szFullName, pszFile, bRecurse);
-        }
-        while (FindNextFile (hFind, &findData));
-        FindClose (hFind);
-    }
-
-    /* append file name */
-    _tcscpy (pszFileName, pszFile);
-
-    /* display current directory */
-    hFind = FindFirstFile (szFullName, &findData);
-    if (hFind == INVALID_HANDLE_VALUE)
-    {
-        ErrorMessage (GetLastError (), pszFile);
-        return;
-    }
-
-    do
-    {
-        if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
-            continue;
-
-        _tcscpy (pszFileName, findData.cFileName);
-
-        ConOutPrintf(_T("%c  %c%c%c     %s\n"),
-                     (findData.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE) ? _T('A') : _T(' '),
-                     (findData.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM) ? _T('S') : _T(' '),
-                     (findData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) ? _T('H') : _T(' '),
-                     (findData.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? _T('R') : _T(' '),
-                     szFullName);
-    }
-    while (FindNextFile(hFind, &findData));
-    FindClose(hFind);
-}
-
-
-static VOID
-ChangeAttribute(LPTSTR pszPath, LPTSTR pszFile, DWORD dwMask,
-                DWORD dwAttrib, BOOL bRecurse, BOOL bDirectories)
-{
-    WIN32_FIND_DATA findData;
-    HANDLE hFind;
-    DWORD  dwAttribute;
-    TCHAR  szFullName[MAX_PATH];
-    LPTSTR pszFileName;
-
-
-    /* prepare full file name buffer */
-    _tcscpy (szFullName, pszPath);
-    pszFileName = szFullName + _tcslen (szFullName);
-
-    /* change all subdirectories */
-    if (bRecurse)
-    {
-        /* append file name */
-        _tcscpy (pszFileName, _T("*.*"));
-
-        hFind = FindFirstFile (szFullName, &findData);
-        if (hFind == INVALID_HANDLE_VALUE)
-        {
-            ErrorMessage (GetLastError (), pszFile);
-      nErrorLevel = 1;
-            return;
-        }
-
-        do
-        {
-            if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
-            {
-                if (!_tcscmp (findData.cFileName, _T(".")) ||
-                    !_tcscmp (findData.cFileName, _T("..")))
-                    continue;
-
-                _tcscpy (pszFileName, findData.cFileName);
-                _tcscat (pszFileName, _T("\\"));
-
-                ChangeAttribute (szFullName, pszFile, dwMask,
-                                 dwAttrib, bRecurse, bDirectories);
-            }
-        }
-        while (FindNextFile (hFind, &findData));
-        FindClose (hFind);
-    }
-
-    /* append file name */
-    _tcscpy (pszFileName, pszFile);
-
-    hFind = FindFirstFile (szFullName, &findData);
-    if (hFind == INVALID_HANDLE_VALUE)
-    {
-        ErrorMessage (GetLastError (), pszFile);
-    nErrorLevel = 1;
-        return;
-    }
-
-    do
-    {
-        if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
-            continue;
-
-        _tcscpy (pszFileName, findData.cFileName);
-
-        dwAttribute = GetFileAttributes (szFullName);
-
-        if (dwAttribute != 0xFFFFFFFF)
-        {
-            dwAttribute = (dwAttribute & ~dwMask) | dwAttrib;
-            SetFileAttributes (szFullName, dwAttribute);
-        }
-    }
-    while (FindNextFile (hFind, &findData));
-    FindClose (hFind);
-}
-
-
-INT CommandAttrib (LPTSTR param)
-{
-    LPTSTR *arg;
-    INT    argc, i;
-    TCHAR  szPath[MAX_PATH];
-    TCHAR  szFileName [MAX_PATH];
-    BOOL   bRecurse = FALSE;
-    BOOL   bDirectories = FALSE;
-    DWORD  dwAttrib = 0;
-    DWORD  dwMask = 0;
-
-    /* initialize strings */
-    szPath[0] = _T('\0');
-    szFileName[0] = _T('\0');
-
-    /* print help */
-    if (!_tcsncmp (param, _T("/?"), 2))
-    {
-        ConOutResPaging(TRUE,STRING_ATTRIB_HELP);
-        return 0;
-    }
-
-    nErrorLevel = 0;
-
-    /* build parameter array */
-    arg = split (param, &argc, FALSE, FALSE);
-
-    /* check for options */
-    for (i = 0; i < argc; i++)
-    {
-        if (_tcsicmp (arg[i], _T("/s")) == 0)
-            bRecurse = TRUE;
-        else if (_tcsicmp (arg[i], _T("/d")) == 0)
-            bDirectories = TRUE;
-    }
-
-    /* create attributes and mask */
-    for (i = 0; i < argc; i++)
-    {
-        if (*arg[i] == _T('+'))
-        {
-            if (_tcslen (arg[i]) != 2)
-            {
-                error_invalid_parameter_format (arg[i]);
-                freep (arg);
-                return -1;
-            }
-
-            switch ((TCHAR)_totupper (arg[i][1]))
-            {
-                case _T('A'):
-                    dwMask   |= FILE_ATTRIBUTE_ARCHIVE;
-                    dwAttrib |= FILE_ATTRIBUTE_ARCHIVE;
-                    break;
-
-                case _T('H'):
-                    dwMask   |= FILE_ATTRIBUTE_HIDDEN;
-                    dwAttrib |= FILE_ATTRIBUTE_HIDDEN;
-                    break;
-
-                case _T('R'):
-                    dwMask   |= FILE_ATTRIBUTE_READONLY;
-                    dwAttrib |= FILE_ATTRIBUTE_READONLY;
-                    break;
-
-                case _T('S'):
-                    dwMask   |= FILE_ATTRIBUTE_SYSTEM;
-                    dwAttrib |= FILE_ATTRIBUTE_SYSTEM;
-                    break;
-
-                default:
-                    error_invalid_parameter_format (arg[i]);
-                    freep (arg);
-                    return -1;
-            }
-        }
-        else if (*arg[i] == _T('-'))
-        {
-            if (_tcslen (arg[i]) != 2)
-            {
-                error_invalid_parameter_format (arg[i]);
-                freep (arg);
-                return -1;
-            }
-
-            switch ((TCHAR)_totupper (arg[i][1]))
-            {
-                case _T('A'):
-                    dwMask   |= FILE_ATTRIBUTE_ARCHIVE;
-                    dwAttrib &= ~FILE_ATTRIBUTE_ARCHIVE;
-                    break;
-
-                case _T('H'):
-                    dwMask   |= FILE_ATTRIBUTE_HIDDEN;
-                    dwAttrib &= ~FILE_ATTRIBUTE_HIDDEN;
-                    break;
-
-                case _T('R'):
-                    dwMask   |= FILE_ATTRIBUTE_READONLY;
-                    dwAttrib &= ~FILE_ATTRIBUTE_READONLY;
-                    break;
-
-                case _T('S'):
-                    dwMask   |= FILE_ATTRIBUTE_SYSTEM;
-                    dwAttrib &= ~FILE_ATTRIBUTE_SYSTEM;
-                    break;
-
-                default:
-                    error_invalid_parameter_format (arg[i]);
-                    freep (arg);
-                    return -1;
-            }
-        }
-    }
-
-    if (argc == 0)
-    {
-        DWORD len;
-
-        len = GetCurrentDirectory (MAX_PATH, szPath);
-        if (szPath[len-1] != _T('\\'))
-        {
-            szPath[len] = _T('\\');
-            szPath[len + 1] = 0;
-        }
-        _tcscpy (szFileName, _T("*.*"));
-        PrintAttribute (szPath, szFileName, bRecurse);
-        freep (arg);
-        return 0;
-    }
-
-    /* get full file name */
-    for (i = 0; i < argc; i++)
-    {
-        if ((*arg[i] != _T('+')) && (*arg[i] != _T('-')) && (*arg[i] != _T('/')))
-        {
-            LPTSTR p;
-            GetFullPathName (arg[i], MAX_PATH, szPath, NULL);
-            p = _tcsrchr (szPath, _T('\\')) + 1;
-            _tcscpy (szFileName, p);
-            *p = _T('\0');
-
-            if (dwMask == 0)
-                PrintAttribute (szPath, szFileName, bRecurse);
-            else
-                ChangeAttribute (szPath, szFileName, dwMask,
-                         dwAttrib, bRecurse, bDirectories);
-        }
-    }
-
-    freep (arg);
-    return 0;
-}
-
-#endif /* INCLUDE_CMD_ATTRIB */
index 69a769e..2ddafab 100644 (file)
@@ -63,9 +63,6 @@ INT CommandAlias (LPTSTR);
 /* Prototypes for ASSOC.C */
 INT CommandAssoc (LPTSTR);
 
-/* Prototypes for ATTRIB.C */
-INT CommandAttrib (LPTSTR);
-
 /* Prototypes for BEEP.C */
 INT cmd_beep (LPTSTR);
 
index 8221f06..20d3f69 100644 (file)
@@ -42,10 +42,6 @@ COMMAND cmds[] =
     {_T("assoc"), 0, CommandAssoc},
 #endif
 
-#ifdef INCLUDE_CMD_ATTRIB
-    {_T("attrib"), 0, CommandAttrib},
-#endif
-
 #ifdef INCLUDE_CMD_BEEP
     {_T("beep"),     0, cmd_beep},
 #endif
index bdeeaa0..90f7b9c 100644 (file)
@@ -50,7 +50,6 @@
 #define INCLUDE_CMD_ACTIVATE
 #endif
 #define INCLUDE_CMD_ASSOC
-#define INCLUDE_CMD_ATTRIB
 #define INCLUDE_CMD_CHDIR
 #define INCLUDE_CMD_CHOICE
 #define INCLUDE_CMD_CLS
index a4e8aaa..4910fac 100644 (file)
@@ -14,19 +14,6 @@ assoc (print all associations)\n\
 assoc .ext (print specific association)\n\
 assoc .ext= (remove specific association)\n\
 assoc .ext=FileType (add new association)\n"
-    STRING_ATTRIB_HELP "Displays or changes file attributes.\n\n\
-ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] file ...\n\
-       [/S [/D]]\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\
-  /S  Processes matching files in the current directory\n\
-      and all subdirectories\n\
-  /D  Processes directories as well\n\n\
-Type ATTRIB without a parameter to display the attributes of all files.\n"
     STRING_ALIAS_HELP "Sets, removes or shows aliases.\n\n\
 ALIAS [alias=[command]]\n\n\
   alias    Name for an alias.\n\
index 52ff682..078cb1b 100644 (file)
@@ -11,19 +11,6 @@ assoc (Gibt alle Zuordnungen aus)\n\
 assoc .erw (Gibt die spezifische Zuordnung aus)\n\
 assoc .erw= (Löscht die spezifische Zuordnung)\n\
 assoc .erw=Dateityp (Fügt neue Zuordnung hinzu)\n"
-    STRING_ATTRIB_HELP "Zeigt Dateiattribute an oder ändert sie.\n\n\
-ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] Dateiname ...\n\
-       [/S [/D]]\n\n\
-  +   Setzt ein Attribut\n\
-  -   Löscht ein Attribut\n\
-  R   Attribut für 'schreibgeschützte Datei'\n\
-  A   Attribut für 'zu archivierende Datei'\n\
-  S   Attribut für 'Systemdatei'\n\
-  H   Attribut für 'versteckte Datei'\n\
- /S   Verarbeitet übereinstimmende Dateien im aktuellen Ordner\n\
-      und in allen Unterordnern.\n\
-  /D  Verarbeitet auch die Ordner.\n\n\
-ATTRIB ohne Parameter zeigt die derzeit gesetzten Attribute aller Dateien an."
     STRING_ALIAS_HELP "Setzt, löscht oder zeigt ein Alias.\n\n\
 ALIAS [Alias=[Befehl]]\n\n\
   Alias    Name des Alias.\n\
index 92c45ea..fab27d8 100644 (file)
@@ -14,19 +14,6 @@ assoc (print all associations)\n\
 assoc .ext (print specific association)\n\
 assoc .ext= (remove specific association)\n\
 assoc .ext=FileType (add new association)\n"
-    STRING_ATTRIB_HELP "Προβολή ή αλλαγή των χαρακτηριστικών των αρχείων.\n\n\
-ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] file ...\n\
-       [/S [/D]]\n\n\
-  +   Ορισμός ενός χαρακτηριστικού.\n\
-  -   Απαλοιφή ενός χαρακτηριστικού.\n\
-  R   Χαρακτηριστικό αρχείου μόνο για ανάγνωση.\n\
-  A   Χαρακτηριστικό φύλαξης αρχείου.\n\
-  S   Χαρακτηριστικό αρχείου συστήματος.\n\
-  H   Χαρακτηριστικό κρυφού αρχείου.\n\
-  /S  Επεξεργασία των αρχείων που ταιριάζουν στον τρέχοντα κατάλογο\n\
-      και σε όλους τους υποκαταλόγους.\n\
-  /D  Επεξεργασία καταλόγων επίσης.\n\n\
-Πληκτρολογήστε ATTRIB χωρίς παράμετρο, για να εμφανιστούν τα χαρακτηριστικά όλων των αρχείων.\n"
     STRING_ALIAS_HELP "Θέτει,αφαιρεί ή εμφανίζει τα aliases.\n\n\
 ALIAS [alias=[εντολή]]\n\n\
   alias    Όνομα για το alias.\n\
index 41f73af..e0324bb 100644 (file)
@@ -9,19 +9,6 @@ assoc (print all associations)\n\
 assoc .ext (print specific association)\n\
 assoc .ext= (remove specific association)\n\
 assoc .ext=FileType (add new association)\n"
-    STRING_ATTRIB_HELP "Displays or changes file attributes.\n\n\
-ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] file ...\n\
-       [/S [/D]]\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\
-  /S  Processes matching files in the current directory\n\
-      and all subdirectories\n\
-  /D  Processes directories as well\n\n\
-Type ATTRIB without a parameter to display the attributes of all files.\n"
     STRING_ALIAS_HELP "Sets, removes or shows aliases.\n\n\
 ALIAS [alias=[command]]\n\n\
   alias    Name for an alias.\n\
index d2767a4..2ca450e 100644 (file)
@@ -11,19 +11,6 @@ assoc (print all associations)\n\
 assoc .ext (print specific association)\n\
 assoc .ext= (remove specific association)\n\
 assoc .ext=FileType (add new association)\n"
-    STRING_ATTRIB_HELP "Muestra o cambia los atributos de los archivos.\n\n\
-ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] file ...\n\
-       [/S [/D]]\n\n\
-  +   Añade un atributo\n\
-  -   Borra un atributo\n\
-  R   Atributo de sólo lectura\n\
-  A   Atributo de archivo\n\
-  S   Atributo de archivo de sistema\n\
-  H   Atributo de archivo oculto\n\
-  /S  Procesa los archivos coincidentes en el directorio actual \n\
-      y sus subdirectorios\n\
-  /D  Procesa también los directorios\n\n\
-Type ATTRIB without a parameter to display the attributes of all files.\n"
     STRING_ALIAS_HELP "Pone, borra o muestra los alias.\n\n\
 ALIAS [alias=[command]]\n\n\
   alias    Nombre para un alias.\n\
index 84b0c5b..09799ca 100644 (file)
@@ -11,19 +11,6 @@ assoc (print all associations)\n\
 assoc .ext (print specific association)\n\
 assoc .ext= (remove specific association)\n\
 assoc .ext=FileType (add new association)\n"
-    STRING_ATTRIB_HELP "Affiche ou change des attributs de fichiers.\n\n\
-ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] file ...\n\
-       [/S [/D]]\n\n\
-  +   Positionne un attribut\n\
-  -   Enlève un attribut\n\
-  R   Fichier en lecture seule\n\
-  A   Fichier archive\n\
-  S   Fichier système\n\
-  H   Fichier caché\n\
-  /S  Traite les fichiers correspondants dans le répertoire courant\n\
-        et tous les sous-répertoires\n\
-  /D  Traite également les répertoires\n\n\
-Taper ATTRIB sans paramètre pour afficher les attributs de tous les fichiers."
     STRING_ALIAS_HELP "Positionne, enlève ou affiche les alias.\n\n\
 ALIAS [alias=[commande]]\n\n\
   alias     Nom de l'alias.\n\
index 8b91ff1..b984b99 100644 (file)
@@ -11,19 +11,6 @@ assoc (print all associations)\n\
 assoc .ext (print specific association)\n\
 assoc .ext= (remove specific association)\n\
 assoc .ext=FileType (add new association)\n"
-    STRING_ATTRIB_HELP "Állományok attribútumok megjelenítése vagy beállításai.\n\n\
-ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] állomány ...\n\
-       [/S [/D]]\n\n\
-  +   bekapcsol egy attribútumot\n\
-  -   kikapcsol egy attribútumot\n\
-  R   Írásvédett állomány\n\
-  A   Archiválandó állomány\n\
-  S   Rendszer állomány\n\
-  H   Rejtett állomány\n\
-  /S  Minden állomány módosítása a mappában és minden\n\
-      almappábanban\n\
-  /D  Mappákra is érvényesíti\n\n\
-Ha ATTRIB-ot paraméter nélkül írod be, megjeleníti a mappában található összes állományt és annak attribútumát.\n"
     STRING_ALIAS_HELP "Aliasok megjelenítése, hozzáadása és törlése\n\n\
 ALIAS [alias=[parancs]]\n\n\
   alias    Alias neve.\n\
index 58cc0a9..ffb62a0 100644 (file)
@@ -11,19 +11,6 @@ assoc (print all associations)\n\
 assoc .ext (print specific association)\n\
 assoc .ext= (remove specific association)\n\
 assoc .ext=FileType (add new association)\n"
-    STRING_ATTRIB_HELP "Menampilkan atau mengubah atribut file.\n\n\
-ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] file ...\n\
-       [/S [/D]]\n\n\
-  +   Menyetel atribut\n\
-  -   Membersihkan atribut\n\
-  R   Atribut file Hanya-baca\n\
-  A   Atribut file Arsip\n\
-  S   Atribut file Sistem\n\
-  H   Atribut file Tersembunyi\n\
-  /S  Proses file yang sama dalam direktori dan semua subdirektori\n\
-      saat ini\n\
-  /D  Proses direktori juga\n\n\
-Ketik ATTRIB tanpa parameter untuk menampilkan atribut dari semua file.\n"
     STRING_ALIAS_HELP "Menyetel, menghapus atau menampilkan alias.\n\n\
 ALIAS [alias=[command]]\n\n\
   alias    Nama untuk alias.\n\
index 3677926..16b8cb8 100644 (file)
@@ -9,19 +9,6 @@ assoc (mostra tutte le associazioni)\n\
 assoc .ext (mostra una specifica associazione)\n\
 assoc .ext= (rimuove una specifica associazione)\n\
 assoc .ext=FileType (aggiung una associazione)\n"
-    STRING_ATTRIB_HELP "Visualizza o modifica gli attributi dei file.\n\n\
-ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] file ...\n\
-       [/S [/D]]\n\n\
-  +   Attiva un attributo\n\
-  -   Toglie un attributo\n\
-  R   Attributo di file di sola lettura\n\
-  A   Attributo di file di archivio\n\
-  S   Attributo di file di sistema\n\
-  H   Attributo di file nascosto\n\
-  /S  Tratta i file indicati nella cartella corrente e in\n\
-       tutte le sottocartelle\n\
-  /D  Tratta anche le cartelle\n\n\
-Scrivi ATTRIB senza parametri per visualizzare gli attributi di tutti i file.\n"
     STRING_ALIAS_HELP "Attiva, toglie o visualizza gli alias.\n\n\
 ALIAS [alias=[comando]]\n\n\
   alias    Nome dell'alias.\n\
index 0064ccc..1688526 100644 (file)
@@ -9,19 +9,6 @@ assoc (print all associations)\n\
 assoc .ext (print specific association)\n\
 assoc .ext= (remove specific association)\n\
 assoc .ext=FileType (add new association)\n"
-    STRING_ATTRIB_HELP "ファイル属性を表示または変更します。\n\n\
-ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] [ファイル] ...\n\
-       [/S [/D]]\n\n\
-  +   属性を設定します。\n\
-  -   属性を解除します。\n\
-  R   読みとり専用属性。\n\
-  A   アーカイブ属性。\n\
-  S   システム ファイル属性。\n\
-  H   隠しファイル属性。\n\
-  /S  現在のフォルダとすべてのサブフォルダの一致するファイルを\n\
-      処理します。\n\
-  /D  フォルダも処理します。\n\n\
-パラメータを指定しないで ATTRIB と入力すると、すべてのファイルの属性を表示します。\n"
     STRING_ALIAS_HELP "エイリアスの設定や解除をしたり、エイリアスを表示したりします。\n\n\
 ALIAS [エイリアス=[コマンド]]\n\n\
   エイリアス   エイリアスとしてつける名前。\n\
index 09d284a..2d8f293 100644 (file)
@@ -9,19 +9,6 @@ assoc (print all associations)\n\
 assoc .ext (print specific association)\n\
 assoc .ext= (remove specific association)\n\
 assoc .ext=FileType (add new association)\n"
-    STRING_ATTRIB_HELP "Viser eller endrer filattributtene.\n\n\
-ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] fil ...\n\
-       [/S [/D]]\n\n\
-  +   Setter et attributt\n\
-  -   Fjerner et attributt\n\
-  R   Attributt: Skrivebeskyttet.\n\
-  A   Attributt: Arkiver.\n\
-  S   Attributt: System.\n\
-  H   Attributt: Skjult.\n\
-  /S  Behandler tilsvarende filer i gjeldende mappe\n\
-      og alle undermapper.\n\
-  /D  Bearbeider også mapper.\n\n\
-Skriv ATTRIB uten parametere for å vise attributtene til alle filer.\n"
     STRING_ALIAS_HELP "Setter, fjerner eller viser alias.\n\n\
 ALIAS [alias=[Kommando]]\n\n\
   alias    Navn for et alias.\n\
index e9f2d43..1e56fe8 100644 (file)
@@ -18,19 +18,6 @@ assoc (wyświetla wszystkie skojarzenia)\n\
 assoc .ext (wyświetla określone skojarzenie)\n\
 assoc .ext= (usuwa określone skojarzenie)\n\
 assoc .ext=typPliku (dodaje nowe skojarzenie)\n"
-    STRING_ATTRIB_HELP "Wyświetla lub zmienia atrybuty plików.\n\n\
-ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] nazwa_pliku ...\n\
-       [/S [/D]]\n\n\
-  +   Ustawia atrybut\n\
-  -   Czyści atrybut\n\
-  R   Atrybut pliku tylko do odczytu\n\
-  A   Atrybut pliku archiwalnego\n\
-  S   Atrybut pliku systemowego\n\
-  H   Atrybut pliku ukrytego\n\
-  /S  Przetwarza wszystkie, pasujące pliki w bieżącym katalogu\n\
-      i we wszystkich podkatalogach\n\
-  /D  Przetwarza również katalogi\n\n\
-Wpisz ATTRIB bez żadnego parametru, by wyświetlić atrybuty wszystkich plików.\n"
     STRING_ALIAS_HELP "Ustawia, usuwa, a także wyświetla aliasy.\n\n\
 ALIAS [nazwa=[tekst]]\n\n\
   nazwa   Nazwa aliasu.\n\
index c6c94bd..3c83bbc 100644 (file)
@@ -11,19 +11,6 @@ assoc (afișează toate asocierile)\n\
 assoc .ext (afișează o anumită asociere)\n\
 assoc .ext= (elimină o anumită asociere)\n\
 assoc .ext=tip_fișier (adaugă o nouă asociere)\n"
-    STRING_ATTRIB_HELP "Afișează sau modifică atributele de fișiere.\n\n\
-ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] fișier ...\n\
-       [/S [/D]]\n\n\
-  +   Consimte atributul\n\
-  -   Reprobă atributul\n\
-  R   Atributul fișierelor nemodificabile\n\
-  A   Atributul fișierelor arhivabile\n\
-  S   Atributul fișierelor de sistem\n\
-  H   Atributul fișierelor ascunse\n\
-  /S  Aplică și pentru fișierele din subdirectoare\n\
-  /D  Aplică și pentru directoare\n\n\
-Tastați ATTRIB fără argumente pentru afișarea atributelor pentru\n\
-toate fișierele.\n"
     STRING_ALIAS_HELP "Instituie, destituie sau afișează alias.\n\n\
 ALIAS [alias=[comandă]]\n\n\
   alias    Numele pentru alias.\n\
index 00b8349..bffa1f1 100644 (file)
@@ -11,19 +11,6 @@ assoc (вывести все ассоциации)\n\
 assoc .ext (вывести выбранную ассоциацию)\n\
 assoc .ext= (удалить ассоциацию)\n\
 assoc .ext=FileType (добавить ассоциацию)\n"
-    STRING_ATTRIB_HELP "Вывод и изменение атрибутов файлов.\n\n\
-ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] файл ...\n\
-       [/S [/D]]\n\n\
-  +   Установка атрибута.\n\
-  -   Снятие атрибута.\n\
-  R   Атрибут ""Только чтение"".\n\
-  A   Атрибут ""Архивный"".\n\
-  S   Атрибут ""Системный"".\n\
-  H   Атрибут ""Скрытый"".\n\
-  /S  Обработка файлов с указанными именами в текущей папке\n\
-      и во всех ее подпапках.\n\
-  /D  Обработка и файлов, и папок.\n\n\
-Команда ATTRIB без параметров выводит атрибуты всех файлов.\n"
     STRING_ALIAS_HELP "Вывод, установка или удаление псевдонимов.\n\n\
 ALIAS [псевдоним=[команда]]\n\n\
   псевдоним    Наименование псевдонима.\n\
index affef29..641709f 100644 (file)
@@ -15,19 +15,6 @@ assoc (print all associations)\n\
 assoc .ext (print specific association)\n\
 assoc .ext= (remove specific association)\n\
 assoc .ext=FileType (add new association)\n"
-    STRING_ATTRIB_HELP "Displays or changes file attributes.\n\n\
-ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] file ...\n\
-       [/S [/D]]\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\
-  /S  Processes matching files in the current directory\n\
-      and all subdirectories\n\
-  /D  Processes directories as well\n\n\
-Type ATTRIB without a parameter to display the attributes of all files.\n"
     STRING_ALIAS_HELP "Sets, removes or shows aliases.\n\n\
 ALIAS [alias=[command]]\n\n\
   alias    Name for an alias.\n\
index 9228fa8..38fc7c7 100644 (file)
@@ -13,19 +13,6 @@ assoc (shfaq të gjith asociacionet)\n\
 assoc .ext (shfaq asociacionet specifike)\n\
 assoc .ext= (hiq acosiacionet specifike)\n\
 assoc .ext=FileType (shto asociacione te reja)\n"
-    STRING_ATTRIB_HELP "Shfaq ose ndryshu atributet e dokumentave.\n\n\
-ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] file ...\n\
-       [/S [/D]]\n\n\
-  +   Vendos nje atribute\n\
-  -   Pastron një atribute\n\
-  R   Lexo-vetem atributet e dokumentave\n\
-  A   Atributet e dokumentave në arkiv\n\
-  S   Atributet e dokumentave të sistemit\n\
-  H   Atributet e dokumentave te fshehur\n\
-  /S  Procesi i përputhjes së dokumentave ne skedën aktuale\n\
-      dhe të gjitha nënskedat\n\
-  /D  Proçeso skedat gjithashtu\n\n\
-Shkruaj ATTRIB pa një parameter për të shfaque atributet e të gjithë dokumentave.\n"
     STRING_ALIAS_HELP "Vëndos, hew ose shfaq pseudonimin.\n\n\
 ALIAS [alias=[Komande]]\n\n\
   alias    Emri i pseudonimit.\n\
index 3fde66a..ea59758 100644 (file)
@@ -9,19 +9,6 @@ assoc (print all associations)\n\
 assoc .ext (print specific association)\n\
 assoc .ext= (remove specific association)\n\
 assoc .ext=FileType (add new association)\n"
-    STRING_ATTRIB_HELP "Visar eller ändrar filattributen.\n\n\
-ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] fil ...\n\
-       [/S [/D]]\n\n\
-  +   Sätter ett attribut\n\
-  -   Rensar ett attribut\n\
-  R   Attribut: Skrivskyddad.\n\
-  A   Attribut: Arkiverad.\n\
-  S   Attribut: System.\n\
-  H   Attribut: Dold.\n\
-  /S  Behandlar matchande filer i den aktuella mappen\n\
-      och alla undermappar.\n\
-  /D  Bearbetar även mappar.\n\n\
-Skriv ATTRIB utan parametrar för att visa attributten för alla filer.\n"
     STRING_ALIAS_HELP "Sätter, tar bort eller visar alias.\n\n\
 ALIAS [alias=[Kommando]]\n\n\
   alias     Namn på ett alias.\n\
index aa37078..be6104a 100644 (file)
@@ -11,19 +11,6 @@ assoc (tüm ilişkilendirmeleri yazdır)\n\
 assoc .uzn (belirtilen ilişkilendirmeyi yazdır)\n\
 assoc .uzn= (belirtilen ilişkilendirmeyi sil)\n\
 assoc .uzn=Kütük Türü (yeni ilişkilendirme ekle)\n"
-    STRING_ATTRIB_HELP "Kütük öz niteliklerini görüntüler ya da değiştirir.\n\n\
-ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] kütük ...\n\
-       [/S [/D]]\n\n\
-  +   Bir öz nitelik ayarlar\n\
-  -   Bir öz nitelik siler\n\
-  R   Yalnızca okunur kütük öz niteliği\n\
-  A   Belgelik kütük öz niteliği\n\
-  S   Dizge kütük öz niteliği\n\
-  H   Gizli kütük öz niteliği\n\
-  /S  Şimdiki dizindeki ve tüm alt dizinlerdeki kütükleri eşlemeyi yapar\n\
-  /D  Dizinleri de yap\n\n\
-Tüm kütüklerin öz niteliklerini görüntülemek için bir değişken olmadan ATTRIB\n\
-yazınız.\n"
     STRING_ALIAS_HELP "Başka adları ayarlar, siler ya da gösterir.\n\n\
 ALIAS [başka ad=[komut]]\n\n\
   başka ad Bir başka ad için ad.\n\
index db311b8..9105434 100644 (file)
@@ -17,19 +17,6 @@ assoc (друк всiх асоцiацiй)\n\
 assoc .рош (друк вiдповiдної асоцiацiї)\n\
 assoc .рош= (видалення вiдповiдної асоцiацiї)\n\
 assoc .рош=ФайлТип (додати нову асоцiацiю)\n"
-    STRING_ATTRIB_HELP "Відображення або зміна атрибутів файлу.\n\n\
-ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] файл ...\n\
-       [/S [/D]]\n\n\
-  +   Встановлення атрибуту\n\
-  -   Зняття атрибуту\n\
-  R   Атрибут файлу ""Лише читання""\n\
-  A   Атрибут файлу ""Архiвний""\n\
-  S   Атрибут файлу ""Системний""\n\
-  H   Атрибут файлу ""Прихований""\n\
-  /S  Обробка файлiв зi вказаними iменами в поточнiй тецi\n\
-      i у всіх її пiдтеках\n\
-  /D  Обробка також i тек\n\n\
-Введiть ATTRIB без параметра, щоб вивести атрибути всiх файлiв.\n"
     STRING_ALIAS_HELP "Встановлення, видалення або показ псевдонiмiв.\n\n\
 ALIAS [псевдонiм=[команда]]\n\n\
   псевдонiм    Iм'я псевдонiма.\n\
index 3d2a62b..0ce1b12 100644 (file)
@@ -11,18 +11,6 @@ assoc (输出所有文件关联)\n\
 assoc .ext (输出指定的文件关联)\n\
 assoc .ext= (删除指定的文件关联)\n\
 assoc .ext=文件类型 (添加新的文件关联)\n"
-    STRING_ATTRIB_HELP "显示或更改文件属性。\n\n\
-ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] 文件 ...\n\
-       [/S [/D]]\n\n\
-  +   设置一个属性\n\
-  -   清除一个属性\n\
-  R   只读属性\n\
-  A   归档属性\n\
-  S   系统属性\n\
-  H   隐藏属性\n\
-  /S  处理当前目录和所有子目录下的所有匹配文件\n\
-  /D  同时处理目录\n\n\
-执行不带参数的 ATTRIB 将会显示所有文件的属性。\n"
     STRING_ALIAS_HELP "设置、删除或显示别名。\n\n\
 ALIAS [别名=[命令]]\n\n\
   别名    别名的名称。\n\
index 718affe..7a76081 100644 (file)
@@ -12,18 +12,6 @@ assoc (輸出所有檔案關聯)\n\
 assoc .ext (輸出指定的檔案關聯)\n\
 assoc .ext= (刪除指定的檔案關聯)\n\
 assoc .ext=檔案類型 (添加新的檔案關聯)\n"
-    STRING_ATTRIB_HELP "顯示或更改檔案屬性。\n\n\
-ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] 檔案 ...\n\
-       [/S [/D]]\n\n\
-  +   設定一個屬性\n\
-  -   清除一個屬性\n\
-  R   只讀屬性\n\
-  A   歸檔屬性\n\
-  S   系統屬性\n\
-  H   隱藏屬性\n\
-  /S  處理當前目錄和所有子目錄下的所有匹配檔案\n\
-  /D  同時處理目錄\n\n\
-執行不帶參數的 ATTRIB 將會顯示所有檔案的屬性。\n"
     STRING_ALIAS_HELP "設定、刪除或顯示別名。\n\n\
 ALIAS [別名=[命令]]\n\n\
   別名    別名的名稱。\n\
index 8397877..ff914ba 100644 (file)
@@ -66,7 +66,6 @@
 #define STRING_REPLACE_ERROR7      357
 #define STRING_ASSOC_ERROR         358
 
-#define STRING_ATTRIB_HELP 600
 #define STRING_ALIAS_HELP  601
 #define STRING_BEEP_HELP   602
 #define STRING_CALL_HELP   603