我想為 txt 檔案中的每一行建立一個資料夾,例如「[023] 檔案第 23 行中的文字」。
我正在使用下面的程式碼,但它說語法不正確。透過將其分成幾個部分並使用註釋,我發現這if
也是一個問題,但我無法解決它。
@echo off
chcp 1252>nul
SETLOCAL DisableDelayedExpansion
set Nbres=0
FOR /F "usebackq delims=" %%a in (`"findstr /n ^^ fnID_fr.txt"`) do (
set "var=%%a"
SETLOCAL EnableDelayedExpansion
set "var=!var:*:=!"
if %Nbres% leq 10
goto :set10
if %Nbres% leq 100
goto :set100
goto :set0
:set100
set DIGITS=0
goto :set0
:set10
set DIGITS=00
:set0
if not exist "!Nbres! !var!" mkdir "!Nbres! !var!"
set Nbres=%Nbres%+1
)
chcp %cp%>nul
pause
這是我想要的一個例子...我只想有標題,而不必在每一行寫下每個數字...
答案1
要在目錄中為文字檔案中的每一行建立一個資料夾,您所需要做的就是:
@echo off
set "txt=C:\Your\Text\File.txt"
set "dir=C:\Directory\Where\You\Want\Your\Folders\Made"
setlocal enabledelayedexpansion
for /f "delims=" %%A in (%txt%) do (
set /A count+=1
set "long=00!count!"
set "new=[!long:~-3!]"
if not exist "%dir%\!new! %%A" md "%dir%\!new! %%A"
)
pause
您不一定必須有變量,但我發現它使編寫此類內容變得更容易。for
將循環遍歷您的文字檔案並將該行的文字分配給參數%%A
並向count
變數添加一個數字。它設定一個名為long
as 的變量count
,前面有兩個零以適合您的命名方案(如果文字檔案中的行數超過 999 行,則可以添加更多零),然後它設定一個名為new
as 的最後三個字元的變數long
(因此這!long:~-3!
)。最後,它會檢查您的行是否已經存在一個資料夾,如果不存在,它會將該資料夾新增為%dir%\!new! %%A
.如有任何疑問,請向我詢問;可能有比我建議的更快的方式到達那裡,但這可以讓您在旅途中改變一些事情。