Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Windows [игнор отключен] [закрыт для гостей] / имя файла без расширения в CMD / 9 сообщений из 9, страница 1 из 1
15.09.2010, 12:33
    #36847448
Gabit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
имя файла без расширения в CMD
Доброе время суток !

Работаю со списком файлов:
Код: plaintext
1.
2.
@for /f "" %%i in ('dir /B /d IN\*.xml') do (

)

Внутри цикла надо получить имя файла без расширения, как это возможно ?
...
Рейтинг: 0 / 0
15.09.2010, 12:40
    #36847467
aleks2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
имя файла без расширения в CMD
Читать научиться не пробовали?
>for /?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Операции подстановки ссылок на переменные команды FOR также расширены.
Допускается применение следующих синтаксических конструкций:

    %~I         - из переменной %I удаляются обрамляющие кавычки (")
    %~fI        - переменная %I расширяется до полного имени файла
    %~dI        - из переменной %I выделяется только имя диска
    %~pI        - из переменной %I выделяется только путь к файлу
    %~nI        - из переменной %I выделяется только имя файла
    %~xI        - из переменной %I выделяется расширение имени файла
    %~sI        - полученный путь содержит только короткие имена
    %~aI        - переменная %I расширяется до атрибутов файла
    %~tI        - переменная %I расширяется до даты /времени файла
    %~zI        - переменная %I расширяется до размера файла
    %~$PATH:I   - проводится поиск по каталогам, заданным в переменной
                   среды PATH, и переменная %I заменяется на полное
                   имя первого найденного файла.  Если переменная PATH
                   не определена или в результате поиска не найден ни
                   ни один файл, то этот модификатор заменяется на пустую
                   строку
...
Рейтинг: 0 / 0
15.09.2010, 13:54
    #36847725
Gabit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
имя файла без расширения в CMD
Спасибо?
А как убрать расширение дважды ?
т.е. файлые имеют такую маску: *.tar.bz2
Пытался так: %~n~nI
не прокатило.
...
Рейтинг: 0 / 0
15.09.2010, 14:56
    #36847942
Gabit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
имя файла без расширения в CMD
и еще в списке формированным for длинные имена файлов урезаны.
проверил командной строки:
Код: plaintext
dir /B /D IN\*.tar.bz2
Выводит:
авторПробный файл.tar.bz2

А bat-нике внутри цикла вижу:
Пробный
...
Рейтинг: 0 / 0
15.09.2010, 14:56
    #36847944
Gabit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
имя файла без расширения в CMD
получается пропадает все что после пробела в имени файла.
...
Рейтинг: 0 / 0
16.09.2010, 13:19
    #36850075
Cursky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
имя файла без расширения в CMD
Gabit,

Напишите лучше VBS-скрипт. Вот функция, возвращающая имя файла без расширений.
Всё, что после пробелов в именах файлов сохраняются.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Function GetFileName(flname)
    Dim posn, i 
    Dim fName
    posn =  0 
    For i =  1  To Len(flname)
        If (Mid(flname, i,  1 ) = "\") Then posn = i
    Next 
    fName = Right(flname, Len(flname) - posn)
    posn = InStr(fName, ".")
        If posn <>  0  Then
            fName = Left(fName, posn -  1 )
        End If
    GetFileName = fName
End Function
Хотя можно и в батнике по аналогии такое сделать.
...
Рейтинг: 0 / 0
16.09.2010, 13:34
    #36850118
Gabit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
имя файла без расширения в CMD
в батнике как можно организовать Mid ?
...
Рейтинг: 0 / 0
16.09.2010, 13:45
    #36850148
aleks2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
имя файла без расширения в CMD
Gabitв батнике как можно организовать Mid ?

И чему только в яслях учат?

1. Вариант - тупой
Код: plaintext
1.
@for /f "" %%i in ('dir /B /d *.test') do @echo %%~ni>>tmp.tmp
@for /f "" %%i in (tmp.tmp) do @echo %%~ni

2. Вариант - еще тупее
Код: plaintext
@for /f "tokens=1 delims=." %%i in ('dir /B /d *.test') do @echo %%i
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
21.07.2015, 16:21
    #39012495
sirnon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
имя файла без расширения в CMD
20150627172819_8123231233121@12098599@sip.zebra.ru.mp3
такого вида файлы ваша команда режет :)
так что тупой вариант не подойдет.
...
Рейтинг: 0 / 0
Форумы / Windows [игнор отключен] [закрыт для гостей] / имя файла без расширения в CMD / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]