Implement switch /R for dir command.
It allows enumerating alternate data streams of files

Commit dedicated to Ged

svn path=/trunk/; revision=68823
This commit is contained in:
Pierre Schweitzer 2015-08-25 20:35:51 +00:00
parent b72e356c87
commit 6686b09385
21 changed files with 218 additions and 84 deletions

View file

@ -132,6 +132,9 @@
* Removed variables formerly in use to handle pagination * Removed variables formerly in use to handle pagination
* Pagination belongs to ConOutPrintfPaging * Pagination belongs to ConOutPrintfPaging
* Removed already commented out code of old pagination * Removed already commented out code of old pagination
*
* 25-Aug-2015 (Pierre Schweitzer)
* Implemented /R switch
*/ */
#include "precomp.h" #include "precomp.h"
@ -172,6 +175,7 @@ typedef struct _DirSwitchesFlags
BOOL bRecursive; /* Displays files in specified directory and all sub */ BOOL bRecursive; /* Displays files in specified directory and all sub */
BOOL bShortName; /* Displays the sort name of files if exist */ BOOL bShortName; /* Displays the sort name of files if exist */
BOOL b4Digit; /* Four digit year */ BOOL b4Digit; /* Four digit year */
BOOL bDataStreams; /* Displays alternate data streams */
struct struct
{ {
DWORD dwAttribVal; /* The desired state of attribute */ DWORD dwAttribVal; /* The desired state of attribute */
@ -189,9 +193,21 @@ typedef struct _DirSwitchesFlags
} stTimeField; /* The time field to display or use for sorting */ } stTimeField; /* The time field to display or use for sorting */
} DIRSWITCHFLAGS, *LPDIRSWITCHFLAGS; } DIRSWITCHFLAGS, *LPDIRSWITCHFLAGS;
typedef struct _DIRFINDLISTNODE typedef struct _DIRFINDSTREAMNODE
{
WIN32_FIND_STREAM_DATA stStreamInfo;
struct _DIRFINDSTREAMNODE *ptrNext;
} DIRFINDSTREAMNODE, *PDIRFINDSTREAMNODE;
typedef struct _DIRFINDINFO
{ {
WIN32_FIND_DATA stFindInfo; WIN32_FIND_DATA stFindInfo;
PDIRFINDSTREAMNODE ptrHead;
} DIRFINDINFO, *PDIRFINDINFO;
typedef struct _DIRFINDLISTNODE
{
DIRFINDINFO stInfo;
struct _DIRFINDLISTNODE *ptrNext; struct _DIRFINDLISTNODE *ptrNext;
} DIRFINDLISTNODE, *PDIRFINDLISTNODE; } DIRFINDLISTNODE, *PDIRFINDLISTNODE;
@ -325,6 +341,8 @@ DirReadParam(LPTSTR Line, /* [IN] The line with the parameters & s
lpFlags->bRecursive = ! bNegative; lpFlags->bRecursive = ! bNegative;
else if (cCurUChar == _T('X')) else if (cCurUChar == _T('X'))
lpFlags->bShortName = ! bNegative; lpFlags->bShortName = ! bNegative;
else if (cCurChar == _T('R'))
lpFlags->bDataStreams = ! bNegative;
else if (cCurChar == _T('4')) else if (cCurChar == _T('4'))
lpFlags->b4Digit = ! bNegative; lpFlags->b4Digit = ! bNegative;
else if (cCurChar == _T('?')) else if (cCurChar == _T('?'))
@ -838,7 +856,7 @@ getName(const TCHAR* file, TCHAR * dest)
* The function that prints in new style * The function that prints in new style
*/ */
static VOID static VOID
DirPrintNewList(LPWIN32_FIND_DATA ptrFiles[], /* [IN]Files' Info */ DirPrintNewList(PDIRFINDINFO ptrFiles[], /* [IN]Files' Info */
DWORD dwCount, /* [IN] The quantity of files */ DWORD dwCount, /* [IN] The quantity of files */
TCHAR *szCurPath, /* [IN] Full path of current directory */ TCHAR *szCurPath, /* [IN] Full path of current directory */
LPDIRSWITCHFLAGS lpFlags) /* [IN] The flags used */ LPDIRSWITCHFLAGS lpFlags) /* [IN] The flags used */
@ -850,17 +868,18 @@ DirPrintNewList(LPWIN32_FIND_DATA ptrFiles[], /* [IN]Files' Info */
TCHAR szTime[20]; TCHAR szTime[20];
INT iSizeFormat; INT iSizeFormat;
ULARGE_INTEGER u64FileSize; ULARGE_INTEGER u64FileSize;
PDIRFINDSTREAMNODE ptrCurStream;
for (i = 0; i < dwCount && !bCtrlBreak; i++) for (i = 0; i < dwCount && !bCtrlBreak; i++)
{ {
/* Calculate size */ /* Calculate size */
if (ptrFiles[i]->dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) if (ptrFiles[i]->stFindInfo.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)
{ {
/* Junction */ /* Junction */
iSizeFormat = -14; iSizeFormat = -14;
_tcscpy(szSize, _T("<JUNCTION>")); _tcscpy(szSize, _T("<JUNCTION>"));
} }
else if (ptrFiles[i]->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) else if (ptrFiles[i]->stFindInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{ {
/* Directory */ /* Directory */
iSizeFormat = -14; iSizeFormat = -14;
@ -870,18 +889,18 @@ DirPrintNewList(LPWIN32_FIND_DATA ptrFiles[], /* [IN]Files' Info */
{ {
/* File */ /* File */
iSizeFormat = 14; iSizeFormat = 14;
u64FileSize.HighPart = ptrFiles[i]->nFileSizeHigh; u64FileSize.HighPart = ptrFiles[i]->stFindInfo.nFileSizeHigh;
u64FileSize.LowPart = ptrFiles[i]->nFileSizeLow; u64FileSize.LowPart = ptrFiles[i]->stFindInfo.nFileSizeLow;
ConvertULargeInteger(u64FileSize.QuadPart, szSize, 20, lpFlags->bTSeperator); ConvertULargeInteger(u64FileSize.QuadPart, szSize, 20, lpFlags->bTSeperator);
} }
/* Calculate short name */ /* Calculate short name */
szShortName[0] = _T('\0'); szShortName[0] = _T('\0');
if (lpFlags->bShortName) if (lpFlags->bShortName)
_stprintf(szShortName, _T(" %-12s"), ptrFiles[i]->cAlternateFileName); _stprintf(szShortName, _T(" %-12s"), ptrFiles[i]->stFindInfo.cAlternateFileName);
/* Format date and time */ /* Format date and time */
DirPrintFileDateTime(szDate, szTime, ptrFiles[i], lpFlags); DirPrintFileDateTime(szDate, szTime, &ptrFiles[i]->stFindInfo, lpFlags);
/* Print the line */ /* Print the line */
DirPrintf(lpFlags, _T("%10s %-6s %*s%s %s\n"), DirPrintf(lpFlags, _T("%10s %-6s %*s%s %s\n"),
@ -890,7 +909,25 @@ DirPrintNewList(LPWIN32_FIND_DATA ptrFiles[], /* [IN]Files' Info */
iSizeFormat, iSizeFormat,
szSize, szSize,
szShortName, szShortName,
ptrFiles[i]->cFileName); ptrFiles[i]->stFindInfo.cFileName);
/* Now, loop on the streams */
ptrCurStream = ptrFiles[i]->ptrHead;
while (ptrCurStream)
{
ConvertULargeInteger(ptrCurStream->stStreamInfo.StreamSize.QuadPart, szSize, 20, lpFlags->bTSeperator);
/* Print the line */
DirPrintf(lpFlags, _T("%10s %-6s %*s%s %s%s\n"),
L"",
L"",
16,
szSize,
L"",
ptrFiles[i]->stFindInfo.cFileName,
ptrCurStream->stStreamInfo.cStreamName);
ptrCurStream = ptrCurStream->ptrNext;
}
} }
} }
@ -901,7 +938,7 @@ DirPrintNewList(LPWIN32_FIND_DATA ptrFiles[], /* [IN]Files' Info */
* The function that prints in wide list * The function that prints in wide list
*/ */
static VOID static VOID
DirPrintWideList(LPWIN32_FIND_DATA ptrFiles[], /* [IN] Files' Info */ DirPrintWideList(PDIRFINDINFO ptrFiles[], /* [IN] Files' Info */
DWORD dwCount, /* [IN] The quantity of files */ DWORD dwCount, /* [IN] The quantity of files */
TCHAR *szCurPath, /* [IN] Full path of current directory */ TCHAR *szCurPath, /* [IN] Full path of current directory */
LPDIRSWITCHFLAGS lpFlags) /* [IN] The flags used */ LPDIRSWITCHFLAGS lpFlags) /* [IN] The flags used */
@ -919,16 +956,16 @@ DirPrintWideList(LPWIN32_FIND_DATA ptrFiles[], /* [IN] Files' Info */
iLongestName = 1; iLongestName = 1;
for (i = 0; i < dwCount; i++) for (i = 0; i < dwCount; i++)
{ {
if (ptrFiles[i]->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) if (ptrFiles[i]->stFindInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{ {
/* Directories need 2 additinal characters for brackets */ /* Directories need 2 additinal characters for brackets */
if ((_tcslen(ptrFiles[i]->cFileName) + 2) > iLongestName) if ((_tcslen(ptrFiles[i]->stFindInfo.cFileName) + 2) > iLongestName)
iLongestName = _tcslen(ptrFiles[i]->cFileName) + 2; iLongestName = _tcslen(ptrFiles[i]->stFindInfo.cFileName) + 2;
} }
else else
{ {
if (_tcslen(ptrFiles[i]->cFileName) > iLongestName) if (_tcslen(ptrFiles[i]->stFindInfo.cFileName) > iLongestName)
iLongestName = _tcslen(ptrFiles[i]->cFileName); iLongestName = _tcslen(ptrFiles[i]->stFindInfo.cFileName);
} }
} }
@ -963,10 +1000,10 @@ DirPrintWideList(LPWIN32_FIND_DATA ptrFiles[], /* [IN] Files' Info */
if (temp >= dwCount) break; if (temp >= dwCount) break;
if (ptrFiles[temp]->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) if (ptrFiles[temp]->stFindInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
_stprintf(szTempFname, _T("[%s]"), ptrFiles[temp]->cFileName); _stprintf(szTempFname, _T("[%s]"), ptrFiles[temp]->stFindInfo.cFileName);
else else
_stprintf(szTempFname, _T("%s"), ptrFiles[temp]->cFileName); _stprintf(szTempFname, _T("%s"), ptrFiles[temp]->stFindInfo.cFileName);
DirPrintf(lpFlags, _T("%-*s"), iLongestName + 1, szTempFname); DirPrintf(lpFlags, _T("%-*s"), iLongestName + 1, szTempFname);
} }
@ -983,7 +1020,7 @@ DirPrintWideList(LPWIN32_FIND_DATA ptrFiles[], /* [IN] Files' Info */
* The function that prints in old style * The function that prints in old style
*/ */
static VOID static VOID
DirPrintOldList(LPWIN32_FIND_DATA ptrFiles[], /* [IN] Files' Info */ DirPrintOldList(PDIRFINDINFO ptrFiles[], /* [IN] Files' Info */
DWORD dwCount, /* [IN] The quantity of files */ DWORD dwCount, /* [IN] The quantity of files */
TCHAR * szCurPath, /* [IN] Full path of current directory */ TCHAR * szCurPath, /* [IN] Full path of current directory */
LPDIRSWITCHFLAGS lpFlags) /* [IN] The flags used */ LPDIRSWITCHFLAGS lpFlags) /* [IN] The flags used */
@ -999,21 +1036,21 @@ DirPrintOldList(LPWIN32_FIND_DATA ptrFiles[], /* [IN] Files' Info */
for (i = 0; i < dwCount && !bCtrlBreak; i++) for (i = 0; i < dwCount && !bCtrlBreak; i++)
{ {
/* Broke 8.3 format */ /* Broke 8.3 format */
if (*ptrFiles[i]->cAlternateFileName ) if (*ptrFiles[i]->stFindInfo.cAlternateFileName )
{ {
/* If the file is long named then we read the alter name */ /* If the file is long named then we read the alter name */
getName( ptrFiles[i]->cAlternateFileName, szName); getName( ptrFiles[i]->stFindInfo.cAlternateFileName, szName);
_tcscpy(szExt, getExt( ptrFiles[i]->cAlternateFileName)); _tcscpy(szExt, getExt( ptrFiles[i]->stFindInfo.cAlternateFileName));
} }
else else
{ {
/* If the file is not long name we read its original name */ /* If the file is not long name we read its original name */
getName( ptrFiles[i]->cFileName, szName); getName( ptrFiles[i]->stFindInfo.cFileName, szName);
_tcscpy(szExt, getExt( ptrFiles[i]->cFileName)); _tcscpy(szExt, getExt( ptrFiles[i]->stFindInfo.cFileName));
} }
/* Calculate size */ /* Calculate size */
if (ptrFiles[i]->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) if (ptrFiles[i]->stFindInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{ {
/* Directory, no size it's a directory*/ /* Directory, no size it's a directory*/
iSizeFormat = -17; iSizeFormat = -17;
@ -1023,13 +1060,13 @@ DirPrintOldList(LPWIN32_FIND_DATA ptrFiles[], /* [IN] Files' Info */
{ {
/* File */ /* File */
iSizeFormat = 17; iSizeFormat = 17;
u64FileSize.HighPart = ptrFiles[i]->nFileSizeHigh; u64FileSize.HighPart = ptrFiles[i]->stFindInfo.nFileSizeHigh;
u64FileSize.LowPart = ptrFiles[i]->nFileSizeLow; u64FileSize.LowPart = ptrFiles[i]->stFindInfo.nFileSizeLow;
ConvertULargeInteger(u64FileSize.QuadPart, szSize, 20, lpFlags->bTSeperator); ConvertULargeInteger(u64FileSize.QuadPart, szSize, 20, lpFlags->bTSeperator);
} }
/* Format date and time */ /* Format date and time */
DirPrintFileDateTime(szDate,szTime,ptrFiles[i],lpFlags); DirPrintFileDateTime(szDate,szTime,&ptrFiles[i]->stFindInfo,lpFlags);
/* Print the line */ /* Print the line */
DirPrintf(lpFlags, _T("%-8s %-3s %*s %s %s\n"), DirPrintf(lpFlags, _T("%-8s %-3s %*s %s %s\n"),
@ -1048,7 +1085,7 @@ DirPrintOldList(LPWIN32_FIND_DATA ptrFiles[], /* [IN] Files' Info */
* The function that prints in bare format * The function that prints in bare format
*/ */
static VOID static VOID
DirPrintBareList(LPWIN32_FIND_DATA ptrFiles[], /* [IN] Files' Info */ DirPrintBareList(PDIRFINDINFO ptrFiles[], /* [IN] Files' Info */
DWORD dwCount, /* [IN] The number of files */ DWORD dwCount, /* [IN] The number of files */
LPTSTR lpCurPath, /* [IN] Full path of current directory */ LPTSTR lpCurPath, /* [IN] Full path of current directory */
LPDIRSWITCHFLAGS lpFlags) /* [IN] The flags used */ LPDIRSWITCHFLAGS lpFlags) /* [IN] The flags used */
@ -1057,8 +1094,8 @@ DirPrintBareList(LPWIN32_FIND_DATA ptrFiles[], /* [IN] Files' Info */
for (i = 0; i < dwCount && !bCtrlBreak; i++) for (i = 0; i < dwCount && !bCtrlBreak; i++)
{ {
if ((_tcscmp(ptrFiles[i]->cFileName, _T(".")) == 0) || if ((_tcscmp(ptrFiles[i]->stFindInfo.cFileName, _T(".")) == 0) ||
(_tcscmp(ptrFiles[i]->cFileName, _T("..")) == 0)) (_tcscmp(ptrFiles[i]->stFindInfo.cFileName, _T("..")) == 0))
{ {
/* at bare format we don't print "." and ".." folder */ /* at bare format we don't print "." and ".." folder */
continue; continue;
@ -1066,12 +1103,12 @@ DirPrintBareList(LPWIN32_FIND_DATA ptrFiles[], /* [IN] Files' Info */
if (lpFlags->bRecursive) if (lpFlags->bRecursive)
{ {
/* at recursive mode we print full path of file */ /* at recursive mode we print full path of file */
DirPrintf(lpFlags, _T("%s\\%s\n"), lpCurPath, ptrFiles[i]->cFileName); DirPrintf(lpFlags, _T("%s\\%s\n"), lpCurPath, ptrFiles[i]->stFindInfo.cFileName);
} }
else else
{ {
/* if we are not in recursive mode we print the file names */ /* if we are not in recursive mode we print the file names */
DirPrintf(lpFlags, _T("%s\n"), ptrFiles[i]->cFileName); DirPrintf(lpFlags, _T("%s\n"), ptrFiles[i]->stFindInfo.cFileName);
} }
} }
} }
@ -1083,7 +1120,7 @@ DirPrintBareList(LPWIN32_FIND_DATA ptrFiles[], /* [IN] Files' Info */
* The functions that prints the files list * The functions that prints the files list
*/ */
static VOID static VOID
DirPrintFiles(LPWIN32_FIND_DATA ptrFiles[], /* [IN] Files' Info */ DirPrintFiles(PDIRFINDINFO ptrFiles[], /* [IN] Files' Info */
DWORD dwCount, /* [IN] The quantity of files */ DWORD dwCount, /* [IN] The quantity of files */
TCHAR *szCurPath, /* [IN] Full path of current directory */ TCHAR *szCurPath, /* [IN] Full path of current directory */
LPDIRSWITCHFLAGS lpFlags) /* [IN] The flags used */ LPDIRSWITCHFLAGS lpFlags) /* [IN] The flags used */
@ -1139,8 +1176,8 @@ DirPrintFiles(LPWIN32_FIND_DATA ptrFiles[], /* [IN] Files' Info */
* Compares 2 files based on the order criteria * Compares 2 files based on the order criteria
*/ */
static BOOL static BOOL
CompareFiles(LPWIN32_FIND_DATA lpFile1, /* [IN] A pointer to WIN32_FIND_DATA of file 1 */ CompareFiles(PDIRFINDINFO lpFile1, /* [IN] A pointer to WIN32_FIND_DATA of file 1 */
LPWIN32_FIND_DATA lpFile2, /* [IN] A pointer to WIN32_FIND_DATA of file 2 */ PDIRFINDINFO lpFile2, /* [IN] A pointer to WIN32_FIND_DATA of file 2 */
LPDIRSWITCHFLAGS lpFlags) /* [IN] The flags that we use to list */ LPDIRSWITCHFLAGS lpFlags) /* [IN] The flags that we use to list */
{ {
ULARGE_INTEGER u64File1; ULARGE_INTEGER u64File1;
@ -1157,10 +1194,10 @@ CompareFiles(LPWIN32_FIND_DATA lpFile1, /* [IN] A pointer to WIN32_FIND_DATA of
{ {
case ORDER_SIZE: /* Order by size /o:s */ case ORDER_SIZE: /* Order by size /o:s */
/* concat the 32bit integers to a 64bit */ /* concat the 32bit integers to a 64bit */
u64File1.LowPart = lpFile1->nFileSizeLow; u64File1.LowPart = lpFile1->stFindInfo.nFileSizeLow;
u64File1.HighPart = lpFile1->nFileSizeHigh; u64File1.HighPart = lpFile1->stFindInfo.nFileSizeHigh;
u64File2.LowPart = lpFile2->nFileSizeLow; u64File2.LowPart = lpFile2->stFindInfo.nFileSizeLow;
u64File2.HighPart = lpFile2->nFileSizeHigh; u64File2.HighPart = lpFile2->stFindInfo.nFileSizeHigh;
/* In case that differnce is too big for a long */ /* In case that differnce is too big for a long */
if (u64File1.QuadPart < u64File2.QuadPart) if (u64File1.QuadPart < u64File2.QuadPart)
@ -1172,16 +1209,16 @@ CompareFiles(LPWIN32_FIND_DATA lpFile1, /* [IN] A pointer to WIN32_FIND_DATA of
break; break;
case ORDER_DIRECTORY: /* Order by directory attribute /o:g */ case ORDER_DIRECTORY: /* Order by directory attribute /o:g */
iComp = ((lpFile2->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)- iComp = ((lpFile2->stFindInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)-
(lpFile1->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)); (lpFile1->stFindInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY));
break; break;
case ORDER_EXTENSION: /* Order by extension name /o:e */ case ORDER_EXTENSION: /* Order by extension name /o:e */
iComp = _tcsicmp(getExt(lpFile1->cFileName),getExt(lpFile2->cFileName)); iComp = _tcsicmp(getExt(lpFile1->stFindInfo.cFileName),getExt(lpFile2->stFindInfo.cFileName));
break; break;
case ORDER_NAME: /* Order by filename /o:n */ case ORDER_NAME: /* Order by filename /o:n */
iComp = _tcsicmp(lpFile1->cFileName, lpFile2->cFileName); iComp = _tcsicmp(lpFile1->stFindInfo.cFileName, lpFile2->stFindInfo.cFileName);
break; break;
case ORDER_TIME: /* Order by file's time /o:t */ case ORDER_TIME: /* Order by file's time /o:t */
@ -1190,24 +1227,24 @@ CompareFiles(LPWIN32_FIND_DATA lpFile1, /* [IN] A pointer to WIN32_FIND_DATA of
{ {
case TF_CREATIONDATE: case TF_CREATIONDATE:
/* concat the 32bit integers to a 64bit */ /* concat the 32bit integers to a 64bit */
u64File1.LowPart = lpFile1->ftCreationTime.dwLowDateTime; u64File1.LowPart = lpFile1->stFindInfo.ftCreationTime.dwLowDateTime;
u64File1.HighPart = lpFile1->ftCreationTime.dwHighDateTime ; u64File1.HighPart = lpFile1->stFindInfo.ftCreationTime.dwHighDateTime ;
u64File2.LowPart = lpFile2->ftCreationTime.dwLowDateTime; u64File2.LowPart = lpFile2->stFindInfo.ftCreationTime.dwLowDateTime;
u64File2.HighPart = lpFile2->ftCreationTime.dwHighDateTime ; u64File2.HighPart = lpFile2->stFindInfo.ftCreationTime.dwHighDateTime ;
break; break;
case TF_LASTACCESSEDDATE : case TF_LASTACCESSEDDATE :
/* concat the 32bit integers to a 64bit */ /* concat the 32bit integers to a 64bit */
u64File1.LowPart = lpFile1->ftLastAccessTime.dwLowDateTime; u64File1.LowPart = lpFile1->stFindInfo.ftLastAccessTime.dwLowDateTime;
u64File1.HighPart = lpFile1->ftLastAccessTime.dwHighDateTime ; u64File1.HighPart = lpFile1->stFindInfo.ftLastAccessTime.dwHighDateTime ;
u64File2.LowPart = lpFile2->ftLastAccessTime.dwLowDateTime; u64File2.LowPart = lpFile2->stFindInfo.ftLastAccessTime.dwLowDateTime;
u64File2.HighPart = lpFile2->ftLastAccessTime.dwHighDateTime ; u64File2.HighPart = lpFile2->stFindInfo.ftLastAccessTime.dwHighDateTime ;
break; break;
case TF_MODIFIEDDATE: case TF_MODIFIEDDATE:
/* concat the 32bit integers to a 64bit */ /* concat the 32bit integers to a 64bit */
u64File1.LowPart = lpFile1->ftLastWriteTime.dwLowDateTime; u64File1.LowPart = lpFile1->stFindInfo.ftLastWriteTime.dwLowDateTime;
u64File1.HighPart = lpFile1->ftLastWriteTime.dwHighDateTime ; u64File1.HighPart = lpFile1->stFindInfo.ftLastWriteTime.dwHighDateTime ;
u64File2.LowPart = lpFile2->ftLastWriteTime.dwLowDateTime; u64File2.LowPart = lpFile2->stFindInfo.ftLastWriteTime.dwLowDateTime;
u64File2.HighPart = lpFile2->ftLastWriteTime.dwHighDateTime ; u64File2.HighPart = lpFile2->stFindInfo.ftLastWriteTime.dwHighDateTime ;
break; break;
} }
@ -1240,12 +1277,12 @@ CompareFiles(LPWIN32_FIND_DATA lpFile1, /* [IN] A pointer to WIN32_FIND_DATA of
* Sort files by the order criterias using quicksort method * Sort files by the order criterias using quicksort method
*/ */
static VOID static VOID
QsortFiles(LPWIN32_FIND_DATA ptrArray[], /* [IN/OUT] The array with file info pointers */ QsortFiles(PDIRFINDINFO ptrArray[], /* [IN/OUT] The array with file info pointers */
int i, /* [IN] The index of first item in array */ int i, /* [IN] The index of first item in array */
int j, /* [IN] The index to last item in array */ int j, /* [IN] The index to last item in array */
LPDIRSWITCHFLAGS lpFlags) /* [IN] The flags that we will use to sort */ LPDIRSWITCHFLAGS lpFlags) /* [IN] The flags that we will use to sort */
{ {
LPWIN32_FIND_DATA lpTemp; /* A temporary pointer */ PDIRFINDINFO lpTemp; /* A temporary pointer */
BOOL Way; BOOL Way;
if (i < j) if (i < j)
@ -1289,8 +1326,9 @@ DirList(LPTSTR szPath, /* [IN] The path that dir starts */
BOOL fPoint; /* If szPath is a file with extension fPoint will be True*/ BOOL fPoint; /* If szPath is a file with extension fPoint will be True*/
HANDLE hSearch; /* The handle of the search */ HANDLE hSearch; /* The handle of the search */
HANDLE hRecSearch; /* The handle for searching recursivly */ HANDLE hRecSearch; /* The handle for searching recursivly */
HANDLE hStreams; /* The handle for alternate streams */
WIN32_FIND_DATA wfdFileInfo; /* The info of file that found */ WIN32_FIND_DATA wfdFileInfo; /* The info of file that found */
LPWIN32_FIND_DATA * ptrFileArray; /* An array of pointers with all the files */ PDIRFINDINFO * ptrFileArray; /* An array of pointers with all the files */
PDIRFINDLISTNODE ptrStartNode; /* The pointer to the first node */ PDIRFINDLISTNODE ptrStartNode; /* The pointer to the first node */
PDIRFINDLISTNODE ptrNextNode; /* A pointer used for relatives refernces */ PDIRFINDLISTNODE ptrNextNode; /* A pointer used for relatives refernces */
TCHAR szFullPath[MAX_PATH]; /* The full path that we are listing with trailing \ */ TCHAR szFullPath[MAX_PATH]; /* The full path that we are listing with trailing \ */
@ -1301,6 +1339,9 @@ DirList(LPTSTR szPath, /* [IN] The path that dir starts */
DWORD dwCountDirs; /* Counter for directories */ DWORD dwCountDirs; /* Counter for directories */
ULONGLONG u64CountBytes; /* Counter for bytes */ ULONGLONG u64CountBytes; /* Counter for bytes */
ULARGE_INTEGER u64Temp; /* A temporary counter */ ULARGE_INTEGER u64Temp; /* A temporary counter */
WIN32_FIND_STREAM_DATA wfsdStreamInfo;
PDIRFINDSTREAMNODE * ptrCurNode; /* The pointer to the first stream */
PDIRFINDSTREAMNODE ptrFreeNode; /* The pointer used during cleanup */
/* Initialize Variables */ /* Initialize Variables */
ptrStartNode = NULL; ptrStartNode = NULL;
@ -1363,6 +1404,12 @@ DirList(LPTSTR szPath, /* [IN] The path that dir starts */
while (ptrStartNode) while (ptrStartNode)
{ {
ptrNextNode = ptrStartNode->ptrNext; ptrNextNode = ptrStartNode->ptrNext;
while (ptrStartNode->stInfo.ptrHead)
{
ptrFreeNode = ptrStartNode->stInfo.ptrHead;
ptrStartNode->stInfo.ptrHead = ptrFreeNode->ptrNext;
cmd_free(ptrFreeNode);
}
cmd_free(ptrStartNode); cmd_free(ptrStartNode);
ptrStartNode = ptrNextNode; ptrStartNode = ptrNextNode;
dwCount--; dwCount--;
@ -1376,15 +1423,68 @@ DirList(LPTSTR szPath, /* [IN] The path that dir starts */
if (ptrNextNode->ptrNext) if (ptrNextNode->ptrNext)
{ {
/* Copy the info of search at linked list */ /* Copy the info of search at linked list */
memcpy(&ptrNextNode->ptrNext->stFindInfo, memcpy(&ptrNextNode->ptrNext->stInfo.stFindInfo,
&wfdFileInfo, &wfdFileInfo,
sizeof(WIN32_FIND_DATA)); sizeof(WIN32_FIND_DATA));
/* If lower case is selected do it here */ /* If lower case is selected do it here */
if (lpFlags->bLowerCase) if (lpFlags->bLowerCase)
{ {
_tcslwr(ptrNextNode->ptrNext->stFindInfo.cAlternateFileName); _tcslwr(ptrNextNode->ptrNext->stInfo.stFindInfo.cAlternateFileName);
_tcslwr(ptrNextNode->ptrNext->stFindInfo.cFileName); _tcslwr(ptrNextNode->ptrNext->stInfo.stFindInfo.cFileName);
}
/* No streams (yet?) */
ptrNextNode->ptrNext->stInfo.ptrHead = NULL;
/* Alternate streams are only displayed with new long list */
if (lpFlags->bNewLongList && lpFlags->bDataStreams)
{
/* Try to get stream information */
hStreams = FindFirstStreamW(wfdFileInfo.cFileName, FindStreamInfoStandard, &wfsdStreamInfo, 0);
if (hStreams != INVALID_HANDLE_VALUE)
{
/* We totally ignore first stream. It contains data about ::$DATA */
ptrCurNode = &ptrNextNode->ptrNext->stInfo.ptrHead;
while (FindNextStreamW(hStreams, &wfsdStreamInfo))
{
*ptrCurNode = cmd_alloc(sizeof(DIRFINDSTREAMNODE));
if (*ptrCurNode == NULL)
{
WARN("DEBUG: Cannot allocate memory for *ptrCurNode!\n");
while (ptrStartNode)
{
ptrNextNode = ptrStartNode->ptrNext;
while (ptrStartNode->stInfo.ptrHead)
{
ptrFreeNode = ptrStartNode->stInfo.ptrHead;
ptrStartNode->stInfo.ptrHead = ptrFreeNode->ptrNext;
cmd_free(ptrFreeNode);
}
cmd_free(ptrStartNode);
ptrStartNode = ptrNextNode;
dwCount--;
}
FindClose(hStreams);
FindClose(hSearch);
return 1;
}
memcpy(&(*ptrCurNode)->stStreamInfo, &wfsdStreamInfo,
sizeof(WIN32_FIND_STREAM_DATA));
/* If lower case is selected do it here */
if (lpFlags->bLowerCase)
{
_tcslwr((*ptrCurNode)->stStreamInfo.cStreamName);
}
ptrCurNode = &(*ptrCurNode)->ptrNext;
}
FindClose(hStreams);
*ptrCurNode = NULL;
}
} }
/* Continue at next node at linked list */ /* Continue at next node at linked list */
@ -1415,13 +1515,19 @@ DirList(LPTSTR szPath, /* [IN] The path that dir starts */
ptrNextNode->ptrNext = NULL; ptrNextNode->ptrNext = NULL;
/* Calculate and allocate space need for making an array of pointers */ /* Calculate and allocate space need for making an array of pointers */
ptrFileArray = cmd_alloc(sizeof(LPWIN32_FIND_DATA) * dwCount); ptrFileArray = cmd_alloc(sizeof(PDIRFINDINFO) * dwCount);
if (ptrFileArray == NULL) if (ptrFileArray == NULL)
{ {
WARN("DEBUG: Cannot allocate memory for ptrFileArray!\n"); WARN("DEBUG: Cannot allocate memory for ptrFileArray!\n");
while (ptrStartNode) while (ptrStartNode)
{ {
ptrNextNode = ptrStartNode->ptrNext; ptrNextNode = ptrStartNode->ptrNext;
while (ptrStartNode->stInfo.ptrHead)
{
ptrFreeNode = ptrStartNode->stInfo.ptrHead;
ptrStartNode->stInfo.ptrHead = ptrFreeNode->ptrNext;
cmd_free(ptrFreeNode);
}
cmd_free(ptrStartNode); cmd_free(ptrStartNode);
ptrStartNode = ptrNextNode; ptrStartNode = ptrNextNode;
dwCount --; dwCount --;
@ -1437,7 +1543,7 @@ DirList(LPTSTR szPath, /* [IN] The path that dir starts */
dwCount = 0; dwCount = 0;
while (ptrNextNode->ptrNext) while (ptrNextNode->ptrNext)
{ {
*(ptrFileArray + dwCount) = &ptrNextNode->ptrNext->stFindInfo; *(ptrFileArray + dwCount) = &ptrNextNode->ptrNext->stInfo;
ptrNextNode = ptrNextNode->ptrNext; ptrNextNode = ptrNextNode->ptrNext;
dwCount++; dwCount++;
} }
@ -1467,6 +1573,12 @@ DirList(LPTSTR szPath, /* [IN] The path that dir starts */
while (ptrStartNode) while (ptrStartNode)
{ {
ptrNextNode = ptrStartNode->ptrNext; ptrNextNode = ptrStartNode->ptrNext;
while (ptrStartNode->stInfo.ptrHead)
{
ptrFreeNode = ptrStartNode->stInfo.ptrHead;
ptrStartNode->stInfo.ptrHead = ptrFreeNode->ptrNext;
cmd_free(ptrFreeNode);
}
cmd_free(ptrStartNode); cmd_free(ptrStartNode);
ptrStartNode = ptrNextNode; ptrStartNode = ptrNextNode;
dwCount --; dwCount --;
@ -1543,6 +1655,7 @@ CommandDir(LPTSTR rest)
/* Initialize Switch Flags < Default switches are setted here!> */ /* Initialize Switch Flags < Default switches are setted here!> */
stFlags.b4Digit = TRUE; stFlags.b4Digit = TRUE;
stFlags.bBareFormat = FALSE; stFlags.bBareFormat = FALSE;
stFlags.bDataStreams = FALSE;
stFlags.bLowerCase = FALSE; stFlags.bLowerCase = FALSE;
stFlags.bNewLongList = TRUE; stFlags.bNewLongList = TRUE;
stFlags.bPause = FALSE; stFlags.bPause = FALSE;
@ -1620,6 +1733,7 @@ CommandDir(LPTSTR rest)
TRACE(" Order Criteria [%i]: %i (Reversed: %i)\n",i, stFlags.stOrderBy.eCriteria[i], stFlags.stOrderBy.bCriteriaRev[i] ); TRACE(" Order Criteria [%i]: %i (Reversed: %i)\n",i, stFlags.stOrderBy.eCriteria[i], stFlags.stOrderBy.bCriteriaRev[i] );
TRACE("(P) Pause : %i\n", stFlags.bPause ); TRACE("(P) Pause : %i\n", stFlags.bPause );
TRACE("(Q) Owner : %i\n", stFlags.bUser ); TRACE("(Q) Owner : %i\n", stFlags.bUser );
TRACE("(R) Data stream : %i\n", stFlags.bDataStreams );
TRACE("(S) Recursive : %i\n", stFlags.bRecursive ); TRACE("(S) Recursive : %i\n", stFlags.bRecursive );
TRACE("(T) Time field : %i\n", stFlags.stTimeField.eTimeField ); TRACE("(T) Time field : %i\n", stFlags.stTimeField.eTimeField );
TRACE("(X) Short names : %i\n", stFlags.bShortName ); TRACE("(X) Short names : %i\n", stFlags.bShortName );

View file

@ -148,7 +148,7 @@ DELAY [/m]n\n\n\
/m specifiy than n are milliseconds\n\ /m specifiy than n are milliseconds\n\
otherwise n are seconds\n" otherwise n are seconds\n"
STRING_DIR_HELP1 "DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]\n\ STRING_DIR_HELP1 "DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]\n\
[/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\ [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\
[drive:][path][filename]\n\ [drive:][path][filename]\n\
Specifies drive, directory, and/or files to list.\n\n\ Specifies drive, directory, and/or files to list.\n\n\
/A Displays files with specified attributes.\n\ /A Displays files with specified attributes.\n\
@ -167,6 +167,7 @@ DELAY [/m]n\n\n\
G Group directories first - Prefix to reverse order\n\ G Group directories first - Prefix to reverse order\n\
/P Pauses after each screenful of information.\n\ /P Pauses after each screenful of information.\n\
/Q Display the owner of the file.\n\ /Q Display the owner of the file.\n\
/R Displays alternate data streams of the files.\n\
/S Displays files in specified directory and all subdirectories.\n\ /S Displays files in specified directory and all subdirectories.\n\
/T Controls which time field displayed or used for sorting\n\ /T Controls which time field displayed or used for sorting\n\
timefield C Creation\n\ timefield C Creation\n\

View file

@ -142,7 +142,7 @@ DELAY [/m]n\n\n\
/m Millisekunden, ansonsten Sekunden\n" /m Millisekunden, ansonsten Sekunden\n"
STRING_DIR_HELP1 "Listet die Dateien und Unterverzeichnisse eines Verzeichnisses auf.\n\n\ STRING_DIR_HELP1 "Listet die Dateien und Unterverzeichnisse eines Verzeichnisses auf.\n\n\
DIR [Laufwerk:][Pfad][Dateiname] [/A[[:]Attribute]] [/B] [/C] [/D] [/L] [/N]\n\ DIR [Laufwerk:][Pfad][Dateiname] [/A[[:]Attribute]] [/B] [/C] [/D] [/L] [/N]\n\
[/O[[:]Reihenfolge]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\ [/O[[:]Reihenfolge]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\
[Laufwerk:][path][Dateiname]\n\ [Laufwerk:][path][Dateiname]\n\
Bezeichnet Laufwerk, Verzeichnis und/oder Dateien.\n\n\ Bezeichnet Laufwerk, Verzeichnis und/oder Dateien.\n\n\
/A Listet Dateien mit angegebenen Attributen auf.\n\ /A Listet Dateien mit angegebenen Attributen auf.\n\
@ -162,6 +162,7 @@ DIR [Laufwerk:][Pfad][Dateiname] [/A[[:]Attribute]] [/B] [/C] [/D] [/L] [/N]\n\
G Verzeichnisse zuerst - vorangestellt kehrt die\n\ G Verzeichnisse zuerst - vorangestellt kehrt die\n\
/P Pausiert nach jeder vollen Bildschirmseite.\n\ /P Pausiert nach jeder vollen Bildschirmseite.\n\
/Q Gibt den Besitzer der Datei aus.\n\ /Q Gibt den Besitzer der Datei aus.\n\
/R Displays alternate data streams of the files.\n\
/S Listet Dateien und alle Unterverzeichnisse auf.\n\ /S Listet Dateien und alle Unterverzeichnisse auf.\n\
/T Bestimmt welche Zeit verwendet wird.\n\ /T Bestimmt welche Zeit verwendet wird.\n\
timefield C Erstellung\n\ timefield C Erstellung\n\

View file

@ -147,7 +147,7 @@ DELAY [/m]n\n\n\
/m specifiy than n are milliseconds\n\ /m specifiy than n are milliseconds\n\
otherwise n are seconds\n" otherwise n are seconds\n"
STRING_DIR_HELP1 "DIR [δίσκος:][μονοπάτι][αρχείο] [/A[[:]χαρακτηριστικά]] [/B] [/C] [/D] [/L] [/N]\n\ STRING_DIR_HELP1 "DIR [δίσκος:][μονοπάτι][αρχείο] [/A[[:]χαρακτηριστικά]] [/B] [/C] [/D] [/L] [/N]\n\
[/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\ [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\
[δίσκος:][μονοπάτι][αρχείο]\n\ [δίσκος:][μονοπάτι][αρχείο]\n\
Καθορίζει μονάδα δίσκου, κατάλογο ή/και αρχεία που θα παρατεθούν σε λίστα.\n\n\ Καθορίζει μονάδα δίσκου, κατάλογο ή/και αρχεία που θα παρατεθούν σε λίστα.\n\n\
/A Εμφανίζει αρχεία με τα καθορισμένα χαρακτηριστικά..\n\ /A Εμφανίζει αρχεία με τα καθορισμένα χαρακτηριστικά..\n\
@ -166,6 +166,7 @@ DELAY [/m]n\n\n\
G Πρώτα οι κατάλογοι ομάδων - Πρόθεμα για αντιστροφή της σειράς\n\ G Πρώτα οι κατάλογοι ομάδων - Πρόθεμα για αντιστροφή της σειράς\n\
/P Σταματάει όταν οι πληροφορίες γεμίσουν μία οθόνη.\n\ /P Σταματάει όταν οι πληροφορίες γεμίσουν μία οθόνη.\n\
/Q Εμφάνιση του ιδιοκτήτη του αρχείου.\n\ /Q Εμφάνιση του ιδιοκτήτη του αρχείου.\n\
/R Displays alternate data streams of the files.\n\
/S Εμφανίζει τα αρχεία στον καθορισμένο κατάλογο και σε όλους τους υποκαταλόγους.\n\ /S Εμφανίζει τα αρχεία στον καθορισμένο κατάλογο και σε όλους τους υποκαταλόγους.\n\
/T Ελέγχει ποιο πεδίο χρόνου θα εμφανιστεί ή θα χρησιμοποιηθεί για την ταξινόμηση\n\ /T Ελέγχει ποιο πεδίο χρόνου θα εμφανιστεί ή θα χρησιμοποιηθεί για την ταξινόμηση\n\
πεδίο χρόνου C Δημιουργία\n\ πεδίο χρόνου C Δημιουργία\n\

View file

@ -143,7 +143,7 @@ DELAY [/m]n\n\n\
/m specifiy than n are milliseconds\n\ /m specifiy than n are milliseconds\n\
otherwise n are seconds\n" otherwise n are seconds\n"
STRING_DIR_HELP1 "DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]\n\ STRING_DIR_HELP1 "DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]\n\
[/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\ [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\
[drive:][path][filename]\n\ [drive:][path][filename]\n\
Specifies drive, directory, and/or files to list.\n\n\ Specifies drive, directory, and/or files to list.\n\n\
/A Displays files with specified attributes.\n\ /A Displays files with specified attributes.\n\
@ -162,6 +162,7 @@ DELAY [/m]n\n\n\
G Group directories first - Prefix to reverse order\n\ G Group directories first - Prefix to reverse order\n\
/P Pauses after each screenful of information.\n\ /P Pauses after each screenful of information.\n\
/Q Display the owner of the file.\n\ /Q Display the owner of the file.\n\
/R Displays alternate data streams of the files.\n\
/S Displays files in specified directory and all subdirectories.\n\ /S Displays files in specified directory and all subdirectories.\n\
/T Controls which time field displayed or used for sorting\n\ /T Controls which time field displayed or used for sorting\n\
timefield C Creation\n\ timefield C Creation\n\

View file

@ -145,7 +145,7 @@ DELAY [/m]n\n\n\
/m Especifica que n son milisegundos\n\ /m Especifica que n son milisegundos\n\
En otro caso n son segundos\n" En otro caso n son segundos\n"
STRING_DIR_HELP1 "DIR [unidad:][ruta][nombre de archivo] [/A[[:]atributos]] [/B] [/C] [/D] [/L] [/N]\n\ STRING_DIR_HELP1 "DIR [unidad:][ruta][nombre de archivo] [/A[[:]atributos]] [/B] [/C] [/D] [/L] [/N]\n\
[/O[[:]orden]] [/P] [/Q] [/S] [/T[[:]fecha]] [/W] [/X] [/4]\n\n\ [/O[[:]orden]] [/P] [/Q] [/R] [/S] [/T[[:]fecha]] [/W] [/X] [/4]\n\n\
[unidad:][ruta][nombre de archivo]\n\ [unidad:][ruta][nombre de archivo]\n\
Especifica la unidad, el directorio o los archivos a listar.\n\n\ Especifica la unidad, el directorio o los archivos a listar.\n\n\
/A Muestra los archivos con los atributos especificados.\n\ /A Muestra los archivos con los atributos especificados.\n\
@ -165,6 +165,7 @@ DELAY [/m]n\n\n\
G Los directorios primero - Prefijo para el orden inverso\n\ G Los directorios primero - Prefijo para el orden inverso\n\
/P Pausa después de cada pantalla llena de información.\n\ /P Pausa después de cada pantalla llena de información.\n\
/Q Muestra el propietario del archivo.\n\ /Q Muestra el propietario del archivo.\n\
/R Displays alternate data streams of the files.\n\
/S Muestra los archivos en el directorio especificado y sus subdirectorios.\n\ /S Muestra los archivos en el directorio especificado y sus subdirectorios.\n\
/T Controla que campo de tiempo se muestra o es usado para ordenar:\n\ /T Controla que campo de tiempo se muestra o es usado para ordenar:\n\
campo de tiempo C Creación\n\ campo de tiempo C Creación\n\

View file

@ -151,7 +151,7 @@ DELAY [/m]n\n\n\
/m spécifie que n est en millisecondes\n\ /m spécifie que n est en millisecondes\n\
sinon n est en secondes" sinon n est en secondes"
STRING_DIR_HELP1 "DIR [lecteur:][chemin][fichier] [/A[[:]attributs]] [/B] [/C] [/D] [/L] [/N]\n\ STRING_DIR_HELP1 "DIR [lecteur:][chemin][fichier] [/A[[:]attributs]] [/B] [/C] [/D] [/L] [/N]\n\
[/O[[:]ordredetri]] [/P] [/Q] [/S] [/T[[:]heure]] [/W] [/X] [/4]\n\n\ [/O[[:]ordredetri]] [/P] [/Q] [/R] [/S] [/T[[:]heure]] [/W] [/X] [/4]\n\n\
[lecteur:][chemin][fichier]\n\ [lecteur:][chemin][fichier]\n\
Spécifie le disque, le répertoire, et/ou les fichiers à lister.\n\n\ Spécifie le disque, le répertoire, et/ou les fichiers à lister.\n\n\
/A Affiche les fichiers avec les attributs indiqués.\n\ /A Affiche les fichiers avec les attributs indiqués.\n\
@ -173,6 +173,7 @@ DELAY [/m]n\n\n\
G Répertoires d'abord - Préfixe pour inverser l'ordre\n\ G Répertoires d'abord - Préfixe pour inverser l'ordre\n\
/P S'arrête après chaque page d'information.\n\ /P S'arrête après chaque page d'information.\n\
/Q Affiche le propriétaire du fichier.\n\ /Q Affiche le propriétaire du fichier.\n\
/R Affiche les flux de données alternatifs du fichier.\n\
/S Affiche les fichiers dans le répertoire indiqué et\n\ /S Affiche les fichiers dans le répertoire indiqué et\n\
tous les sous-répertoires.\n\ tous les sous-répertoires.\n\
/T Contrôle quel champ de temps sera affiché ou utilisé\n\ /T Contrôle quel champ de temps sera affiché ou utilisé\n\

View file

@ -136,7 +136,7 @@ DELAY [/m]n\n\n\
/m specifiy than n are milliseconds\n\ /m specifiy than n are milliseconds\n\
otherwise n are seconds\n" otherwise n are seconds\n"
STRING_DIR_HELP1 "DIR [meghajtó:][elérési_út][állománynév] [/A[[:]attribútumok]] [/B] [/C] [/D] [/L] [/N]\n\ STRING_DIR_HELP1 "DIR [meghajtó:][elérési_út][állománynév] [/A[[:]attribútumok]] [/B] [/C] [/D] [/L] [/N]\n\
[/O[[:]rendezési_feltétel]] [/P] [/Q] [/S] [/T[[:]idõ]] [/W] [/X] [/4]\n\n\ [/O[[:]rendezési_feltétel]] [/P] [/Q] [/R] [/S] [/T[[:]idõ]] [/W] [/X] [/4]\n\n\
[meghajtó:][elérési_út][állományname]\n\ [meghajtó:][elérési_út][állományname]\n\
Az adott hely állományait és mappáit jeleníti meg.\n\n\ Az adott hely állományait és mappáit jeleníti meg.\n\n\
/A A megadott attribútumu állományokat jeleníti csak meg.\n\ /A A megadott attribútumu állományokat jeleníti csak meg.\n\
@ -154,6 +154,7 @@ DELAY [/m]n\n\n\
G Mappák legelõl - ""Nem"" prefixel fordított rendezés\n\ G Mappák legelõl - ""Nem"" prefixel fordított rendezés\n\
/P Csak egy képernyõnyi adat megjelenítése egyszerre.\n\ /P Csak egy képernyõnyi adat megjelenítése egyszerre.\n\
/Q Állomány tulajdonsosának megjelenítése.\n\ /Q Állomány tulajdonsosának megjelenítése.\n\
/R Displays alternate data streams of the files.\n\
/S Almappák tartalmát is megjeleníti.\n\ /S Almappák tartalmát is megjeleníti.\n\
/T Controls which time field displayed or used for sorting\n\ /T Controls which time field displayed or used for sorting\n\
timefield C Létrehozás\n\ timefield C Létrehozás\n\

View file

@ -145,7 +145,7 @@ DELAY [/m]n\n\n\
/m menetapkan bahwa n adalah milidetik\n\ /m menetapkan bahwa n adalah milidetik\n\
sebaliknya n adalah detik\n" sebaliknya n adalah detik\n"
STRING_DIR_HELP1 "DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]\n\ STRING_DIR_HELP1 "DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]\n\
[/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\ [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\
[drive:][path][filename]\n\ [drive:][path][filename]\n\
Menetapkan drive, direktori, dan/atau files ke daftar.\n\n\ Menetapkan drive, direktori, dan/atau files ke daftar.\n\n\
/A Menampilkan file dengan atribut yang ditetapkan.\n\ /A Menampilkan file dengan atribut yang ditetapkan.\n\
@ -164,6 +164,7 @@ DELAY [/m]n\n\n\
G Grup direktori pertama - Prefiks untuk membalik urutan\n\ G Grup direktori pertama - Prefiks untuk membalik urutan\n\
/P Menunda setelah setiap layar penuh informasi.\n\ /P Menunda setelah setiap layar penuh informasi.\n\
/Q Menampilkan pemilik file.\n\ /Q Menampilkan pemilik file.\n\
/R Displays alternate data streams of the files.\n\
/S Menampilkan file dalam direktori dan semua subdirektorinya.\n\ /S Menampilkan file dalam direktori dan semua subdirektorinya.\n\
/T Mengontrol field waktu mana atau dipakai untuk mengurut\n\ /T Mengontrol field waktu mana atau dipakai untuk mengurut\n\
timefield C Pembuatan\n\ timefield C Pembuatan\n\

View file

@ -143,7 +143,7 @@ DELAY [/m]n\n\n\
/m precisa che n è in millisecondi\n\ /m precisa che n è in millisecondi\n\
altrimenti n è in secondi\n" altrimenti n è in secondi\n"
STRING_DIR_HELP1 "DIR [disco:][percorso][nomefilen] [/A[[:]attributi]] [/B] [/C] [/D] [/L] [/N]\n\ STRING_DIR_HELP1 "DIR [disco:][percorso][nomefilen] [/A[[:]attributi]] [/B] [/C] [/D] [/L] [/N]\n\
[/O[[:]orderinamento]] [/P] [/Q] [/S] [/T[[:]tempo]] [/W] [/X] [/4]\n\n\ [/O[[:]orderinamento]] [/P] [/Q] [/R] [/S] [/T[[:]tempo]] [/W] [/X] [/4]\n\n\
[disco:][percorso][nomefilen]\n\ [disco:][percorso][nomefilen]\n\
Indica disco, percorso e/o file da elencare.\n\n\ Indica disco, percorso e/o file da elencare.\n\n\
/A Visualizza i file con gli attributi indicati.\n\ /A Visualizza i file con gli attributi indicati.\n\
@ -162,6 +162,7 @@ DELAY [/m]n\n\n\
G Le cartelle per prime - Prefisso per invertire l'ordine\n\ G Le cartelle per prime - Prefisso per invertire l'ordine\n\
/P Pasa dopo ogni schermata piena.\n\ /P Pasa dopo ogni schermata piena.\n\
/Q Visualizza il proprietario del file.\n\ /Q Visualizza il proprietario del file.\n\
/R Displays alternate data streams of the files.\n\
/S Visualizza i file nella cartella indicata e nelle sottocartelle.\n\ /S Visualizza i file nella cartella indicata e nelle sottocartelle.\n\
/T Sceglie quale campo di tempo è usato per gli ordinamenti.\n\ /T Sceglie quale campo di tempo è usato per gli ordinamenti.\n\
timefield C Creazione\n\ timefield C Creazione\n\

View file

@ -148,7 +148,7 @@ DELAY [/m]n\n\n\
指定しない場合、単位には秒が使われます。\n" 指定しない場合、単位には秒が使われます。\n"
STRING_DIR_HELP1 "ディレクトリ中のファイルとサブディレクトリを一覧表示します。\n\n\ STRING_DIR_HELP1 "ディレクトリ中のファイルとサブディレクトリを一覧表示します。\n\n\
DIR [ドライブ:][パス][ファイル名] [/A[[:]属性]] [/B] [/C] [/D] [/L] [/N]\n\ DIR [ドライブ:][パス][ファイル名] [/A[[:]属性]] [/B] [/C] [/D] [/L] [/N]\n\
[/O[[:]ソート順]] [/P] [/Q] [/S] [/T[[:]タイムフィールド]] [/W] [/X] [/4]\n\n\ [/O[[:]ソート順]] [/P] [/Q] [/R] [/S] [/T[[:]タイムフィールド]] [/W] [/X] [/4]\n\n\
[ドライブ:][パス][ファイル名]\n\ [ドライブ:][パス][ファイル名]\n\
一覧表示するドライブ、ディレクトリ、またはファイルを指定します。\n\ 一覧表示するドライブ、ディレクトリ、またはファイルを指定します。\n\
/A 指定された属性のファイルを表示します。\n\ /A 指定された属性のファイルを表示します。\n\
@ -167,6 +167,7 @@ DIR [ドライブ:][パス][ファイル名] [/A[[:]属性]] [/B] [/C] [/D] [/L]
G グループ (ディレクトリから) - 降順\n\ G グループ (ディレクトリから) - 降順\n\
/P 1 画面ごとに停止して表示します。\n\ /P 1 画面ごとに停止して表示します。\n\
/Q ファイルの所有者を表示します。\n\ /Q ファイルの所有者を表示します。\n\
/R Displays alternate data streams of the files.\n\
/S 指定されたディレクトリおよびそのサブディレクトリのすべての\n\ /S 指定されたディレクトリおよびそのサブディレクトリのすべての\n\
ファイルを表示します。\n\ ファイルを表示します。\n\
/T どのタイムフィールドを表示するか、または並べ替えに使用するかを\n\ /T どのタイムフィールドを表示するか、または並べ替えに使用するかを\n\

View file

@ -143,7 +143,7 @@ DELAY [/m]n\n\n\
/m spesifiserer at n er mikrosekunder\n\ /m spesifiserer at n er mikrosekunder\n\
ellers er n sekunder\n" ellers er n sekunder\n"
STRING_DIR_HELP1 "DIR [stasjon:][mappe][filnavn] [/A[[:]attributter]] [/B] [/C] [/D] [/L] [/N]\n\ STRING_DIR_HELP1 "DIR [stasjon:][mappe][filnavn] [/A[[:]attributter]] [/B] [/C] [/D] [/L] [/N]\n\
[/O[[:]sortering]] [/P] [/Q] [/S] [/T[[:]tidsfelt]] [/W] [/X] [/4]\n\n\ [/O[[:]sortering]] [/P] [/Q] [/R] [/S] [/T[[:]tidsfelt]] [/W] [/X] [/4]\n\n\
[stasjon:][mappe][filnavn]\n\ [stasjon:][mappe][filnavn]\n\
Spesifisere stasjon, mappe, og/eller filer som skal listes.\n\n\ Spesifisere stasjon, mappe, og/eller filer som skal listes.\n\n\
/A Vis filer ved å spesifisere attributter.\n\ /A Vis filer ved å spesifisere attributter.\n\
@ -162,6 +162,7 @@ DELAY [/m]n\n\n\
G Gruppere mapper først - Prefiks for å reversere orden\n\ G Gruppere mapper først - Prefiks for å reversere orden\n\
/P Pause etter hvert hele skjermbilde.\n\ /P Pause etter hvert hele skjermbilde.\n\
/Q Viser hvem som eier filen.\n\ /Q Viser hvem som eier filen.\n\
/R Displays alternate data streams of the files.\n\
/S Viser alle filer i angitt mappe og alle undermapper.\n\ /S Viser alle filer i angitt mappe og alle undermapper.\n\
/T Styrer hvilket tidsfelt som vises eller blir brukt for sortering\n\ /T Styrer hvilket tidsfelt som vises eller blir brukt for sortering\n\
timefelt C Opprettet \n\ timefelt C Opprettet \n\

View file

@ -151,7 +151,7 @@ DELAY [/m]n\n\n\
/m wymusza traktowanie n jako milisekund,\n\ /m wymusza traktowanie n jako milisekund,\n\
w innym wypadku będzie traktowane jako sekundy\n" w innym wypadku będzie traktowane jako sekundy\n"
STRING_DIR_HELP1 "DIR [napęd:][ścieżka][pliki] [/A[[:]atrybuty]] [/B] [/C] [/D] [/L] [/N]\n\ STRING_DIR_HELP1 "DIR [napęd:][ścieżka][pliki] [/A[[:]atrybuty]] [/B] [/C] [/D] [/L] [/N]\n\
[/O[[:]porządek]] [/P] [/Q] [/S] [/T[[:]czas]] [/W] [/X] [/4]\n\n\ [/O[[:]porządek]] [/P] [/Q] [/R] [/S] [/T[[:]czas]] [/W] [/X] [/4]\n\n\
[napęd:][ścieżka][nazwa_pliku]\n\ [napęd:][ścieżka][nazwa_pliku]\n\
Wyznacza literę napędu, katalog, i/lub pliki do wyświetlenia.\n\n\ Wyznacza literę napędu, katalog, i/lub pliki do wyświetlenia.\n\n\
/A Wyświetla pliki o określonych atrybutach.\n\ /A Wyświetla pliki o określonych atrybutach.\n\
@ -170,6 +170,7 @@ DELAY [/m]n\n\n\
G Wyświetla najpierw katalogi - Odwraca kolejność\n\ G Wyświetla najpierw katalogi - Odwraca kolejność\n\
/P Pauza po każdym pełnym ekranie.\n\ /P Pauza po każdym pełnym ekranie.\n\
/Q Wyświetla właściciela plików\n\ /Q Wyświetla właściciela plików\n\
/R Displays alternate data streams of the files.\n\
/S Wyświetla pliki w danym katalogu i wszystkich podkatalogach.\n\ /S Wyświetla pliki w danym katalogu i wszystkich podkatalogach.\n\
/T Pole czasu, odpowiedzialne za wyświetlanie/sortowanie \n\ /T Pole czasu, odpowiedzialne za wyświetlanie/sortowanie \n\
czas C Utworzenia\n\ czas C Utworzenia\n\

View file

@ -160,7 +160,7 @@ DELAY [/m]n\n\n\
/m Specifică faptul că «n» sunt milisecunde\n\ /m Specifică faptul că «n» sunt milisecunde\n\
altfel «n» sunt considerate secunde.\n" altfel «n» sunt considerate secunde.\n"
STRING_DIR_HELP1 "DIR [unitate:][cale][fișier] [/A[[:]atribute]] [/B] [/C] [/D] [/L] [/N]\n\ STRING_DIR_HELP1 "DIR [unitate:][cale][fișier] [/A[[:]atribute]] [/B] [/C] [/D] [/L] [/N]\n\
[/O[[:]ordonare]] [/P] [/Q] [/S] [/T[[:]timp]] [/W] [/X] [/4]\n\n\ [/O[[:]ordonare]] [/P] [/Q] [/R] [/S] [/T[[:]timp]] [/W] [/X] [/4]\n\n\
[unitate:][cale][fișier]\n\ [unitate:][cale][fișier]\n\
Specifică unitatea, directorul și/sau fișierele de enumerat.\n\n\ Specifică unitatea, directorul și/sau fișierele de enumerat.\n\n\
/A Afișează fișierele după atributele specificate.\n\ /A Afișează fișierele după atributele specificate.\n\
@ -182,6 +182,7 @@ DELAY [/m]n\n\n\
- Prefix pentru inversarea ordinii\n\ - Prefix pentru inversarea ordinii\n\
/P Pauză după un ecran de informații.\n\ /P Pauză după un ecran de informații.\n\
/Q Afișează posesorul fișierului.\n\ /Q Afișează posesorul fișierului.\n\
/R Displays alternate data streams of the files.\n\
/S Afișează fișierele din directorul specificat și\n\ /S Afișează fișierele din directorul specificat și\n\
din toate subdirectoarele sale.\n\ din toate subdirectoarele sale.\n\
/T Determină care timp este afișat sau folosit la ordonare\n\ /T Determină care timp este afișat sau folosit la ordonare\n\

View file

@ -146,7 +146,7 @@ DELAY [/m]n\n\n\
/m указывает, что n означает количество миллисекунд\n\ /m указывает, что n означает количество миллисекунд\n\
иначе n означает количество секунд\n" иначе n означает количество секунд\n"
STRING_DIR_HELP1 "DIR [диск:][путь][имя_файла] [/A[[:]атрибуты]] [/B] [/C] [/D] [/L] [/N]\n\ STRING_DIR_HELP1 "DIR [диск:][путь][имя_файла] [/A[[:]атрибуты]] [/B] [/C] [/D] [/L] [/N]\n\
[/O[[:]сортировка]] [/P] [/Q] [/S] [/T[[:]время]] [/W] [/X] [/4]\n\n\ [/O[[:]сортировка]] [/P] [/Q] [/R] [/S] [/T[[:]время]] [/W] [/X] [/4]\n\n\
[диск:][путь][имя_файла]\n\ [диск:][путь][имя_файла]\n\
Диск, каталог и/или файлы, которые следует включить в список.\n\n\ Диск, каталог и/или файлы, которые следует включить в список.\n\n\
/A Вывод файлов с указанными атрибутами.\n\ /A Вывод файлов с указанными атрибутами.\n\
@ -165,6 +165,7 @@ DELAY [/m]n\n\n\
G Начать список с каталогов Префикс ""-"" обращает порядок\n\ G Начать список с каталогов Префикс ""-"" обращает порядок\n\
/P Пауза после заполнения каждого экрана.\n\ /P Пауза после заполнения каждого экрана.\n\
/Q Вывод сведений о владельце файла.\n\ /Q Вывод сведений о владельце файла.\n\
/R Displays alternate data streams of the files.\n\
/S Вывод списка файлов из указанного каталога и его подкаталогов.\n\ /S Вывод списка файлов из указанного каталога и его подкаталогов.\n\
/T Выбор поля времени для отображения и сортировки\n\ /T Выбор поля времени для отображения и сортировки\n\
время C Создание\n\ время C Создание\n\

View file

@ -149,7 +149,7 @@ DELAY [/m]n\n\n\
/m specifiy than n are milliseconds\n\ /m specifiy than n are milliseconds\n\
otherwise n are seconds\n" otherwise n are seconds\n"
STRING_DIR_HELP1 "DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]\n\ STRING_DIR_HELP1 "DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]\n\
[/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\ [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]\n\n\
[drive:][path][filename]\n\ [drive:][path][filename]\n\
Specifies drive, directory, and/or files to list.\n\n\ Specifies drive, directory, and/or files to list.\n\n\
/A Displays files with specified attributes.\n\ /A Displays files with specified attributes.\n\
@ -168,6 +168,7 @@ DELAY [/m]n\n\n\
G Group directories first - Prefix to reverse order\n\ G Group directories first - Prefix to reverse order\n\
/P Pauses after each screenful of information.\n\ /P Pauses after each screenful of information.\n\
/Q Display the owner of the file.\n\ /Q Display the owner of the file.\n\
/R Displays alternate data streams of the files.\n\
/S Displays files in specified directory and all subdirectories.\n\ /S Displays files in specified directory and all subdirectories.\n\
/T Controls which time field displayed or used for sorting\n\ /T Controls which time field displayed or used for sorting\n\
timefield C Creation\n\ timefield C Creation\n\

View file

@ -147,7 +147,7 @@ DELAY [/m]n\n\n\
/m specifikoni se n janë millisekonda\n\ /m specifikoni se n janë millisekonda\n\
ndryshe n janë sekonda\n" ndryshe n janë sekonda\n"
STRING_DIR_HELP1 "DIR [drive:][rrugë][emer] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]\n\ STRING_DIR_HELP1 "DIR [drive:][rrugë][emer] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]\n\
[/O[[:]radhitje]] [/P] [/Q] [/S] [/T[[:]koha]] [/W] [/X] [/4]\n\n\ [/O[[:]radhitje]] [/P] [/Q] [/R] [/S] [/T[[:]koha]] [/W] [/X] [/4]\n\n\
[drive:][rrugë][emer]\n\ [drive:][rrugë][emer]\n\
Përcakton, Drejtorin, dhe / ose dokumentin në listë.\n\n\ Përcakton, Drejtorin, dhe / ose dokumentin në listë.\n\n\
/A Shfaq dokumentat me atributet e specifikuara.\n\ /A Shfaq dokumentat me atributet e specifikuara.\n\
@ -166,6 +166,7 @@ DELAY [/m]n\n\n\
G Grupi skedave se pari - Parashtese të kthejë renditjen\n\ G Grupi skedave se pari - Parashtese të kthejë renditjen\n\
/P Pauzo pas çdo informacioni në ekran.\n\ /P Pauzo pas çdo informacioni në ekran.\n\
/Q Shfaq zotëruesin e dosjes.\n\ /Q Shfaq zotëruesin e dosjes.\n\
/R Displays alternate data streams of the files.\n\
/S Shfaq dokumentet në skedën e specifikuar dhe të gjitha nën-skedat.\n\ /S Shfaq dokumentet në skedën e specifikuar dhe të gjitha nën-skedat.\n\
/T Kontrollon secilen fushë kohohore e shfaqura ose e përdorur për klasifikimin\n\ /T Kontrollon secilen fushë kohohore e shfaqura ose e përdorur për klasifikimin\n\
timefield C Krijim\n\ timefield C Krijim\n\

View file

@ -143,7 +143,7 @@ DELAY [/m]n\n\n\
/m anger at n är mikrosekunder\n\ /m anger at n är mikrosekunder\n\
annars är n sekunder\n" annars är n sekunder\n"
STRING_DIR_HELP1 "DIR [enhet:][mapp][filnamn] [/A[[:]attribut]] [/B] [/C] [/D] [/L] [/N]\n\ STRING_DIR_HELP1 "DIR [enhet:][mapp][filnamn] [/A[[:]attribut]] [/B] [/C] [/D] [/L] [/N]\n\
[/O[[:]sortering]] [/P] [/Q] [/S] [/T[[:]tidsfält]] [/W] [/X] [/4]\n\n\ [/O[[:]sortering]] [/P] [/Q] [/R] [/S] [/T[[:]tidsfält]] [/W] [/X] [/4]\n\n\
[enhet:][mapp][filnamn]\n\ [enhet:][mapp][filnamn]\n\
Anger enhet, mapp, och/eller filer som skall listes.\n\n\ Anger enhet, mapp, och/eller filer som skall listes.\n\n\
/A Vis filer ved att ange attributter.\n\ /A Vis filer ved att ange attributter.\n\
@ -162,6 +162,7 @@ DELAY [/m]n\n\n\
G Gruppera mappar först - Prefix för omvänd ordning\n\ G Gruppera mappar först - Prefix för omvänd ordning\n\
/P Pausa efter varje hel skärmbild.\n\ /P Pausa efter varje hel skärmbild.\n\
/Q Viser vem som äger filen.\n\ /Q Viser vem som äger filen.\n\
/R Displays alternate data streams of the files.\n\
/S Viser alla filer i angiven mapp och alla undermappar.\n\ /S Viser alla filer i angiven mapp och alla undermappar.\n\
/T Kontrollerar vilket tidsfält som visas eller blir använt för sortering\n\ /T Kontrollerar vilket tidsfält som visas eller blir använt för sortering\n\
timefelt C Skapelse \n\ timefelt C Skapelse \n\

View file

@ -146,7 +146,7 @@ DELAY [/m]n\n\n\
/m n milisâniye olarak belirtir\n\ /m n milisâniye olarak belirtir\n\
yoksa n sâniyedir\n" yoksa n sâniyedir\n"
STRING_DIR_HELP1 "DIR [sürücü:][yol][kütük adı] [/A[[:]öz nitelikler]] [/B] [/C] [/D] [/L] [/N]\n\ STRING_DIR_HELP1 "DIR [sürücü:][yol][kütük adı] [/A[[:]öz nitelikler]] [/B] [/C] [/D] [/L] [/N]\n\
[/O[[:]dizme düzeni]] [/P] [/Q] [/S] [/T[[:]zaman aralığı]] [/W] [/X] [/4]\n\n\ [/O[[:]dizme düzeni]] [/P] [/Q] [/R] [/S] [/T[[:]zaman aralığı]] [/W] [/X] [/4]\n\n\
[sürücü:][yol][kütük adı]\n\ [sürücü:][yol][kütük adı]\n\
Dizelgelenecek sürücü, dizin veyâ kütükleri belirtir.\n\n\ Dizelgelenecek sürücü, dizin veyâ kütükleri belirtir.\n\n\
/A Belirtilen öz nitelikli kütükleri görüntüler.\n\ /A Belirtilen öz nitelikli kütükleri görüntüler.\n\
@ -166,6 +166,7 @@ DELAY [/m]n\n\n\
G Önce dizinleri öbekle - Ters dizme için ön ek\n\ G Önce dizinleri öbekle - Ters dizme için ön ek\n\
/P Bir bilgi görüntülüğünden sonra duraklatır.\n\ /P Bir bilgi görüntülüğünden sonra duraklatır.\n\
/Q Kütüğün iyesini göster.\n\ /Q Kütüğün iyesini göster.\n\
/R Displays alternate data streams of the files.\n\
/S Belirtilen dizindeki ve tüm alt dizinlerdeki kütükleri\n\ /S Belirtilen dizindeki ve tüm alt dizinlerdeki kütükleri\n\
görüntüler.\n\ görüntüler.\n\
/T Dizme için hangi zaman aralığının görüntüleneceğini ya da\n\ /T Dizme için hangi zaman aralığının görüntüleneceğini ya da\n\

View file

@ -154,7 +154,7 @@ DELAY [/m]n\n\n\
/m вказує, що n це мiлiсекунди\n\ /m вказує, що n це мiлiсекунди\n\
акше n це кiлькiсть секунд\n" акше n це кiлькiсть секунд\n"
STRING_DIR_HELP1 "DIR [диск:][шлях][iм'я_файлу] [/A[[:]атрибути]] [/B] [/C] [/D] [/L] [/N]\n\ STRING_DIR_HELP1 "DIR [диск:][шлях][iм'я_файлу] [/A[[:]атрибути]] [/B] [/C] [/D] [/L] [/N]\n\
[/O[[:]порядок]] [/P] [/Q] [/S] [/T[[:]час]] [/W] [/X] [/4]\n\n\ [/O[[:]порядок]] [/P] [/Q] [/R] [/S] [/T[[:]час]] [/W] [/X] [/4]\n\n\
[диск:][шлях][iм'я_файлу]\n\ [диск:][шлях][iм'я_файлу]\n\
Визначає диск, директорію, та/чи файли для їх виведення в списку.\n\n\ Визначає диск, директорію, та/чи файли для їх виведення в списку.\n\n\
/A Вображення файлiв з вказаними атрибутами.\n\ /A Вображення файлiв з вказаними атрибутами.\n\
@ -173,6 +173,7 @@ DELAY [/m]n\n\n\
G Почати список з каталогiв Префiкс ""-"" для зворотнього порядку\n\ G Почати список з каталогiв Префiкс ""-"" для зворотнього порядку\n\
/P Пауза пiсля кожного заповнення екрану.\n\ /P Пауза пiсля кожного заповнення екрану.\n\
/Q Вображення даних про власника файлу.\n\ /Q Вображення даних про власника файлу.\n\
/R Displays alternate data streams of the files.\n\
/S Вображення файлiв з вказаного каталогу та всiх пiдкаталогiв.\n\ /S Вображення файлiв з вказаного каталогу та всiх пiдкаталогiв.\n\
/T Вибiр поля часу для вiдображення чи сортування\n\ /T Вибiр поля часу для вiдображення чи сортування\n\
час C Створення\n\ час C Створення\n\

View file

@ -138,7 +138,7 @@ ERASE [/N /P /T /Q /S /W /Y /Z /A[[:]属性]] 文件 ...\n\n\
DELAY [/m]n\n\n\ DELAY [/m]n\n\n\
/m 指定 n 的单位使用毫秒,否则为秒。\n" /m 指定 n 的单位使用毫秒,否则为秒。\n"
STRING_DIR_HELP1 "DIR [驱动器:][路径][文件名] [/A[[:]属性]] [/B] [/C] [/D] [/L] [/N]\n\ STRING_DIR_HELP1 "DIR [驱动器:][路径][文件名] [/A[[:]属性]] [/B] [/C] [/D] [/L] [/N]\n\
[/O[[:]排序顺序]] [/P] [/Q] [/S] [/T[[:]时间字段]] [/W] [/X] [/4]\n\n\ [/O[[:]排序顺序]] [/P] [/Q] [/R] [/S] [/T[[:]时间字段]] [/W] [/X] [/4]\n\n\
[驱动器:][路径][文件名]\n\ [驱动器:][路径][文件名]\n\
指定要列表显示的驱动器、目录和/或文件。\n\n\ 指定要列表显示的驱动器、目录和/或文件。\n\n\
/A 显示具有指定属性的文件。\n\ /A 显示具有指定属性的文件。\n\
@ -156,6 +156,7 @@ DELAY [/m]n\n\n\
G 分组目录在前 - 反转顺序的前缀\n\ G 分组目录在前 - 反转顺序的前缀\n\
/P 在每屏幕信息输出后停顿。\n\ /P 在每屏幕信息输出后停顿。\n\
/Q 显示文件的所有者。\n\ /Q 显示文件的所有者。\n\
/R Displays alternate data streams of the files.\n\
/S 显示指定目录和所有子目录中的文件。\n\ /S 显示指定目录和所有子目录中的文件。\n\
/T 控制要显示或者用于排序的时间字段。\n\ /T 控制要显示或者用于排序的时间字段。\n\
时间字段 C 创建时间\n\ 时间字段 C 创建时间\n\