Пакетная команда, чтобы получить имя TXT, а затем установить первое слово этого TXT в переменную - PullRequest
0 голосов
/ 06 июня 2019

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

Мой код:

set /p file= | dir /b .\*.txt

for /f "delims=-" %%i in (%file%) do set %db_sid%=%%i 
pause

Мне нужно прочитать файл и установить только первое слово в качестве переменной db_sid.

Это текущее содержание текста:

prod11i-sarasa

Я хочу, чтобы db_sid было просто prod11i.

Ответы [ 2 ]

1 голос
/ 06 июня 2019

Если вы хотите получить первое слово первого файла, вам нужно выйти из for с помощью goto.

:: Q:\Test\2019\06\06\SO_5640691.cmd
@Echo on
for %%F in (*.txt) do for /f "usebackq delims=-" %%W in ("%%F") do set "db_sid=%%W"&goto :Out
:Out
Set db_sid
0 голосов
/ 06 июня 2019

Сначала вам нужно получить первую строку текстового файла, что делается с помощью set /p var=<file.Затем вы можете разделить строку с помощью for /f (или, альтернативно, обрезать вторую часть с помощью манипуляции со строками, но поскольку * поддерживается только как первый символ, вам потребуется сделать это дважды, используя временную переменную).

for /f "tokens=* delims="  %%F in ('dir/b *.txt') do set /P db_sid=<"%%~fF" 
for /f "tokens=1 delims=-" %%W in ("%db_sid%") do set "db_sid=%%W"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...