私のファイルはAAAAAAA-01.pdf、BBBBBB-02.pdf、CCCCCCC-03.pdfです。以下のコマンドを使用して、拡張子なしでフォルダー内のファイル名のExcelリストを生成できました。
for %%i in (*.pdf) do @echo %%~ni >> C:\LIST.xls
ファイルの最初の7文字を取得するにはどうすればよいですか? AAAAAA、BBBBBBB、CCCCCCC、.。の出力リストが欲しい.
私の2番目の質問は、DASHの前にこれらの文字のみを取得するにはどうすればよいですか?たとえば、私のファイルはABCD-01.pdf、A-03.pdf、AB-00.pdf、...出力をABCD、A、AB、..にします。
私はこれを見つけました set first7=%%I:~0,7%
しかし、それを機能させる方法がわかりません。
よろしくお願いします
@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文字が印刷されます。ただし、ハイフンが存在する場合は、ハイフンの前の文字のみがさらに切り捨てられて印刷されます。
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>
たとえば、私のファイルは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>
変数 -変数の一部を抽出します(部分文字列)