приведение имени файла к 8.3
Добрый день, возник вопрос
имеется каталог с файлами имена которых первышают 8.3, существует ли возможность привести их к виду 8.3. Отсечь ненужные символы? в имени файла? не потеряв смысла первых 8 символов имени.
не устраивает так дает не верный результат
пример:
Код:
Tr011_md1_11.dat
Tr011_md2_11.dat
Tr011_md3_11.dat
использование xcopy /n:
Tr011_~1.dat
Tr011_~1.dat
Tr011_~1.dat
требуется получить
Tr011_md1.dat
Tr011_md2.dat
Tr011_md3.dat
|
tr011_tmn, скопируйте приведенный скрипт в редактор и сохраните его под каким нибудь длинным именем и в папке с длинным именем, а затем запустите его. Посмотрите результат и выберите себе нужный.
Код:
@echo off
echo %%0 =%0
echo %%~0 =%~0
echo %%~f0 =%~f0
echo %%~s0 =%~s0
echo %%~d0 =%~d0
echo %%~p0 =%~p0
echo %%~n0 =%~n0
echo %%~x0 =%~x0
echo %%~a0 =%~a0
echo %%~t0 =%~t0
echo %%~z0 =%~z0
echo %%~dp0 =%~dp0
echo %%~nx0 =%~nx0
echo %%~sn0 =%~sn0
echo %%~sx0 =%~sx0
echo %%~dpn0 =%~dpn0
echo %%~snx0 =%~snx0
echo %%~ftza0 =%~ftza0
pause>>nul
|
Цитата:
Цитата gora
Посмотрите результат и выберите себе нужный. »
|
попробовал но ни один из предложенных вариантов не подходит т.к. ни один из результатов не удовлетворяют требуемому:
Код:
%0 ="C:\Documents and Settings\tr011\Рабочий стол\nametest\nametestcmd.cmd"
%~0 =C:\Documents and Settings\tr011\Рабочий стол\nametest\nametestcmd.cmd
%~f0 =C:\Documents and Settings\tr011\Рабочий стол\nametest\nametestcmd.cmd
%~s0 =C:\DOCUME~1\tr011\0016~1\nametest\NAMETE~1.CMD
%~d0 =C:
%~p0 =\Documents and Settings\tr011\Рабочий стол\nametest\
%~n0 =nametestcmd
%~x0 =.cmd
%~a0 =--a------
%~t0 =16.03.2009 18:06
%~z0 =361
%~dp0 =C:\Documents and Settings\tr011\Рабочий стол\nametest\
%~nx0 =nametestcmd.cmd
%~sn0 =NAMETE~1
%~sx0 =.CMD
%~dpn0 =C:\Documents and Settings\tr011\Рабочий стол\nametest\nametestcmd
%~snx0 =NAMETE~1.CMD
%~ftza0 =--a------ 16.03.2009 18:06 361 C:\Documents and Settings\tr011\Рабочий
стол\nametest\nametestcmd.cmd
|
Цитата:
Цитата tr011_tmn
существует ли возможность привести их к виду 8.3. »
|
Для вашего случая
Код:
Tr011_md1_11.dat
Tr011_md2_11.dat
Tr011_md3_11.dat
формат 8.3 предполагает такой вид:
Код:
TR011_~1.DAT
TR011_~2.DAT
TR011_~3.DAT
Вы же хотите
Цитата:
Цитата tr011_tmn
Tr011_md1.dat
Tr011_md2.dat
Tr011_md3.dat »
|
а это 9 символов до расширения, а не 8! Обрезать имена до 8 символов можно, но они будут одинаковые. Определитесь, что же Вам нужно, преобразовать в формат 8.3 или обрезать имя до 8 символов? Это не одно и тоже.
|
Цитата:
Цитата gora
преобразовать в формат 8.3 или обрезать имя до 8 символов »
|
извиняюсь за то что ввел в заблуждение, мне требуется обрезать имя файла до 8ми символов. Мне не очень хорошо порой дается выразить свою мысль, и четко сформулировать.
Существует ли возможность обрезать имя до 8 символов.
|
Цитата:
Цитата tr011_tmn
Существует ли возможность обрезать имя до 8 символов. »
|
Код:
@Echo off
SetLocal enabledelayedexpansion
Set "Folder=D:\Test long name"
Echo.
Echo оригинальные имена
For /f %%a in ('Dir "%Folder%" /B /A-D') Do echo %%a
Echo.
Echo имена формата 8.3
For /f %%a in ('Dir "%Folder%" /B /A-D') Do echo %%~snxa
Echo.
Echo имена обрезанные до длины 8 символов
For /f %%a in ('Dir "%Folder%" /B /A-D') Do (
Set TempName=%%~na
Echo !TempName:~0,8!%%~xa
)
Pause>nul
|
gora, спасибо все получилось и даже более чем
|
Время: 08:52.
© OSzone.net 2001-