2

У меня есть список в TXT, как это

AAA 1234561
BBB12 66698732
CCCCC 5878471
DD131 262554158

и у меня есть каталог, как показано ниже

DirectoryA/AAA
DirectoryA/BBB12
DirectoryA/CCCCC
DirectoryA/DD131

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

So the DirectoryA/AAA/id.txt contains 1234561
DirectoryA/BBB12/id.txt contains 66698732 and so on. 

Я попытался извлечь строку с / р, но он копирует всю строку, а не только идентификатор.

1 ответ1

4
for /f "tokens=1-2" %%A in (x.txt) do echo %%B > DirectoryA\%%A\id.txt

Обсуждение:

Вы можете получить много полезной информации, набрав FOR /? в командной строке.  Особенно,

FOR /F  [" опции "]  % переменная  IN  ( набор файлов )  DO команда [ команда-параметры ]

читает файл или файлы, указанные в скобках (file-set), и разбирает каждую строку на токены. tokens=1-2 - строка options указывающая, что вы хотите, чтобы первое и второе слова были в каждой строке.  %%A указывает, что %%A - это переменная, в которую будет прочитано первое слово; неявно / автоматически второе слово входит в %%B  Затем команда echo выполняется с %%A и %%B установленными на два слова из файла.

Примечание. Если бы вы вводили эту команду непосредственно в командной строке, вы бы использовали %A и %B , но вы должны использовать двойные знаки процента, когда вы делаете то же самое в скрипте (пакетном файле).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .