Exemple #1
0
INT cmd_vol (LPTSTR param)
{
    TCHAR szRootPath[] = _T("A:\\");
    TCHAR szPath[MAX_PATH];

    if (!_tcsncmp(param, _T("/?"), 2))
    {
        ConOutResPaging(TRUE,STRING_VOL_HELP4);
        return 0;
    }

    nErrorLevel = 0;

    if (param[0] == _T('\0'))
    {
        GetCurrentDirectory(MAX_PATH, szPath);
        szRootPath[0] = szPath[0];
    }
    else
    {
        _tcsupr (param);
        if (param[1] == _T(':'))
        {
            szRootPath[0] = param[0];
        }
        else
        {
            error_invalid_drive ();
            nErrorLevel = 1;
            return 1;
        }
    }

    if (!IsValidPathName (szRootPath))
    {
        error_invalid_drive ();
        nErrorLevel = 1;
        return 1;
    }

    /* print the header */
    if (!PrintVolumeHeader (szRootPath))
    {
        nErrorLevel = 1;
        return 1;
    }

    return 0;
}
Exemple #2
0
INT cmd_label (LPTSTR param)
{
	TCHAR  szRootPath[] = _T("A:\\");
	TCHAR  szLabel[80];
	TCHAR  szOldLabel[80];
	DWORD  dwSerialNr;

	/* set empty label string */
	szLabel[0] = _T('\0');

	nErrorLevel = 0;

	/* print help */
	if (!_tcsncmp (param, _T("/?"), 2))
	{
		ConOutResPaging(TRUE,STRING_LABEL_HELP1);
		return 0;
	}

	/* get parameters */
	if (param[0] != _T('\0') && param[1] == _T(':'))
	{
		szRootPath[0] = (TCHAR)toupper(*param);
		param += 2;
		while (_istspace(*param))
			param++;
	}
	else
	{
		/* get label of current drive */
		TCHAR szCurPath[MAX_PATH];
		GetCurrentDirectory (MAX_PATH, szCurPath);
		szRootPath[0] = szCurPath[0];
	}

	_tcsncat(szLabel, param, 79);

	/* check root path */
	if (!IsValidPathName (szRootPath))
	{
		error_invalid_drive ();
		nErrorLevel = 1;
		return 1;
	}

	if (szLabel[0] == _T('\0'))
	{
		GetVolumeInformation(szRootPath, szOldLabel, 80, &dwSerialNr,
		                     NULL, NULL, NULL, 0);

		/* print drive info */
		if (szOldLabel[0] != _T('\0'))
		{
			ConOutResPrintf(STRING_LABEL_HELP2, _totupper(szRootPath[0]), szOldLabel);
		}
		else
		{
			ConOutResPrintf(STRING_LABEL_HELP3, _totupper(szRootPath[0]));
		}

		/* print the volume serial number */
		ConOutResPrintf(STRING_LABEL_HELP4, HIWORD(dwSerialNr), LOWORD(dwSerialNr));

		ConOutResPuts(STRING_LABEL_HELP5);

		ConInString(szLabel, 80);
	}

	if (!SetVolumeLabel(szRootPath, szLabel))
	{
		ConOutFormatMessage(GetLastError());
		nErrorLevel = 1;
		return 1;
	}

	return 0;
}