我在读取批处理脚本中的文件时遇到了问题,然后将该文件的第一个单词设置为变量,然后在以后使用。
我的代码是:
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
。
答案 0 :(得分:1)
如果您想要第一个文件的第一个单词,则需要使用goto退出for。
:: 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
答案 1 :(得分:0)
首先,您需要获取文本文件的第一行,该行由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"