我有 2 个目录:dirA 和 dirB。我们现在只接受 dirB。dirB 包含许多文件,当然以不同的名称/扩展名命名。
我需要从每个文件中提取前 6 个字母,之后我可以继续程序的第二部分,现在我只需要从每个文件中提取前 6 个字母并将它们写入 txt 文件。
这是我编写的代码,FOR 是唯一一个不能正常工作或更好的代码,而不是具有相同的变量:在 loop1 名为 file1 的 STR,在 loop2 名为 file2 等。
我有 STR = file1file2fileN。var 是 file1f(已经 6 个字母)。
@ECHO off
CLS
SET dirA=C:\dirA
SET dirB=C:\dirB
SET lista=C:\lista.txt
IF NOT EXIST %dirB% GOTO DNF
IF NOT EXIST %dirA% GOTO DNF
setLocal EnableDelayedExpansion
CD %dirB%
DIR /B * > %lista%
:MAIN
CLS
SET /P S=Last Filename: || Set S=null
:LOOP
IF /I "%S%"=="null" GOTO MAIN
FOR /F "tokens=*" %%I IN (%lista%) DO SET str=!str!%%I
SET var=!str:~0,6!
echo !str! > str.txt
echo !var! >> file.txt
SET !str!%%I
IF /I %S%==!var! GOTO:EOF
IF /I %S% NEQ !var! GOTO SNF
GOTO LOOP
:DNF
ECHO.
ECHO %dirA% - %dirB% not found
GOTO:EOF
:SNF
ECHO.
ECHO %S% Not found
TIMEOUT /T 2
GOTO MAIN
GOTO:EOF
endLocal
end