DOS下获取文件不带扩展名的前几个字符

DOS下获取文件不带扩展名的前几个字符

我的文件是 AAAAAAA-01.pdf、BBBBBB-02.pdf、CCCCCCC-03.pdf 我能够使用以下命令在文件夹中生成不带扩展名的文件名的 Excel 列表:

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

我如何让它获取文件的前 7 个字符?我想要的输出列表只有 AAAAAA 、 BBBBBBB、CCCCCCC ……

我的第二个问题是:如何仅获取破折号 - 之前的那些字符?例如,我的文件是 ABCD-01.pdf、A-03.pdf、AB-00.pdf,...我希望输出为 ABCD、A、AB,...

我找到了这个,set first7=%%I:~0,7%但不知道如何让它发挥作用。

在此先感谢您的帮助

答案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 个字母。但是,如果存在连字符,则它将进一步截断并仅打印连字符之前的字母。

答案2

我如何让它获取文件的前 7 个字符?

我想要的输出列表仅为 AAAAAA , BBBBBBB,CCCCCCC ,...

使用以下批处理文件(提取文件名的前 7 个字母)。

测试.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,...

使用以下批处理文件(提取 之前的所有字母-

测试.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>

进一步阅读

相关内容