批处理命令以获取txt名称,然后将该TXT的第一个单词设置为变量

时间:2019-06-06 15:24:11

标签: batch-file

我在读取批处理脚本中的文件时遇到了问题,然后将该文件的第一个单词设置为变量,然后在以后使用。

我的代码是:

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 个答案:

答案 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"