Использование переменной имени файла в цикле for - PullRequest
0 голосов
/ 24 мая 2018

У меня есть каталог с файлом (на самом деле в нем много файлов, но я подумал, что заставить его работать - это первый шаг перед созданием цикла для каждого файла), который нужно отредактировать и сохранить спохожее имя файла.Вместо того, чтобы вручную вводить имя файла, я хотел бы использовать переменную, содержащую имя файла.

Sample Input Data
FileX.txt
Text line 
Text line 
Text line

Desired Output Data
FileX2.txt
1 Text line
2 Text line
3 text line

Я могу управлять этим одним файлом за раз, я изо всех сил пытаюсь написать один скрипт для просмотра содержимого папки и сделать это для каждого текстового файла в папке.

Я нахожусь на Windows 7, и это то, что у меня есть до сих пор:

@echo off
setLocal EnableDelayedExpansion
Set N=0
REM THE BELOW LINE IS THE VARIABLE I'M TRYING TO SET AND THEN HAVE PASSED AS THE FOR LOOP PARAMETER
Set F="FILENAME"

REM IF I SKIP A VARIABLE AND HARDCODE THE FILENAME IN THE BELOW LINE, IT WORKS FOR THE ONE FILE
for /f "tokens=* delims= " %%a in (FILENAMEVARIABLE.txt) do (
Set /a N=!N!+1
echo !N! %%a, >> !F!.txt
)

Оператор открытия цикла for, где я не могу получить переменную для принятия.В FILENAMEVARIABLE.txt я пробовал %% F,% F,! F !, и %% ~ nxf, ни одному из которых не удалось вызвать правильный файл для запуска цикла.Есть идеи, что я тут делаю не так?

1 Ответ

0 голосов
/ 27 мая 2018

Вот что, я думаю, вы пытались сделать:

@Echo Off
SetLocal EnableDelayedExpansion
For %%A In (*.txt) Do (Set "N=0"
    (For /F "UseBackQ Tokens=*" %%B In ("%%A") Do (Set /A N +=1
            Echo !N! %%B))>"%%~nA2%%~xA")

Вы также можете использовать FindStr:

@Echo Off
For /F "Tokens=1-2* Delims=:" %%A In ('FindStr /N "^" *.txt 2^Nul'
) Do >>"%%~nA2%%~xA" Echo %%B %%C

В обоих приведенных выше примерах я имеюПредполагается, что исходный каталог и каталог сценария совпадают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...