3

Мои файлы AAAAAAA-01.pdf, BBBBBB-02.pdf, CCCCCCC-03.pdf Мне удалось создать список превосходных имен файлов в папке без расширения, используя следующую команду:

for %%i in (*.pdf) do @echo %%~ni >> C:\LIST.xls

Как мне получить первые 7 символов файла? Я хочу, чтобы выходной список только AAAAAA, BBBBBBB, CCCCCCC, ...

Мой второй вопрос: как мне получить этих персонажей только до DASH? Например, мои файлы: ABCD-01.pdf, A-03.pdf, AB-00.pdf, ... Я хочу, чтобы вывод был ABCD, A, AB, ...

Я нашел этот set first7=%%I:~0,7% но не знаю, как заставить его работать.

Заранее спасибо за помощь

2 ответа2

2

Как мне получить первые 7 символов файла?

Я хочу, чтобы выходной список только AAAAAA, BBBBBBB, CCCCCCC, ...

Используйте следующий пакетный файл (чтобы извлечь первые 7 букв имени файла).

test.cmd:

@echo off
@Setlocal EnableDelayedExpansion
for %%i in (*.pdf) do (
  set _name=%%~ni
  echo !_name:~0,7!>> c:\list.xls
  )

пример вывода:

C:\test>dir *.pdf
 Volume in drive C has no label.
 Volume Serial Number is C8D0-DF1E

 Directory of C:\test

19/06/2015  17:56                 0 AAAAAAA-01.pdf
19/06/2015  17:56                 0 BBBBBBB-02.pdf
19/06/2015  17:57                 0 CCCCCCC-03.pdf
               3 File(s)              0 bytes
               0 Dir(s)  92,871,524,352 bytes free

C:\test>test

C:\test>type c:\list.xls
AAAAAAA
BBBBBBB
CCCCCCC

C:\test>

Как я могу получить только эти символы до DASH -?

Например, мои файлы: ABCD-01.pdf, A-03.pdf, AB-00.pdf, ... Я хочу, чтобы вывод был ABCD, A, AB, ...

Используйте следующий пакетный файл (чтобы извлечь все буквы до -)

test.cmd:

@echo off
for /f "usebackq tokens=1 delims=-" %%i in (`dir /b *.pdf`) do echo %%i>> c:\list.xls

пример вывода:

C:\test>dir *.pdf
 Volume in drive C has no label.
 Volume Serial Number is C8D0-DF1E

 Directory of C:\test

19/06/2015  18:13                 0 A-03.pdf
19/06/2015  17:56                 0 AAAAAAA-01.pdf
19/06/2015  18:14                 0 AB-00.pdf
19/06/2015  18:13                 0 ABCD-01.pdf
19/06/2015  17:56                 0 BBBBBBB-02.pdf
19/06/2015  17:57                 0 CCCCCCC-03.pdf
               6 File(s)              0 bytes
               0 Dir(s)  92,870,991,872 bytes free

C:\test>test

C:\test>type c:\list.xls
A
AAAAAAA
AB
ABCD
BBBBBBB
CCCCCCC

C:\test>

дальнейшее чтение

1
@echo off
setlocal enabledelayedexpansion
if exist List.xls del List.xls
for %%a in (*.pdf) do (
    set fn=%%~na
    set fn=!fn:~0,7!
    for /f "tokens=1 delims=-" %%f in ('echo !fn!') do echo %%f>>List.xls
)

Это напечатает первые 7 букв каждого имени файла. Однако, если присутствует дефис, он будет усекаться и печатать только буквы перед дефисом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .