目前正在编写一个批处理程序,但我似乎很难用字符串操作。我需要帮助扫描下面的Output.txt文件的内容,搜索单词ssudmdm。无论在何处找到单词,我都需要在同一行上检索com值,在右侧并将其存储在变量中。 我知道网站上有一些例子,但我已经尝试过实施它们而没有运气。任何帮助将不胜感激。
代码:--------------------------------------------- -
@ECHO OFF
:: Use local environment copy
SETLOCAL
::regedit.exe /S VM_Putty_Settings.reg
:while1
reg QUERY "HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM" > Output.txt
@start /wait FIND /C /I "ssudmdm" Output.txt
if %ERRORLEVEL% == 1 (
timeout /t 2 >nul
goto :while1
)
for /f "tokens=3" %%a in ('find /i "ssudmdm" output.txt') do set var=%%a
reg add "HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\VM_Putty_Settings" /V SerialLine /T REG_SZ /D "%var%" /F
pause
start Putty.exe -load VM_Putty_Settings < nul >NUL 2>NUL
ENDLOCAL
GOTO:EOF
输出文件----------------------------------
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM
\Device\Serial0 REG_SZ COM1
\Device\Serial1 REG_SZ COM2
\Device\ssudserd0000 REG_SZ COM5
\Device\ssudserd0001 REG_SZ COM6
\Device\ssudmdm0000 REG_SZ COM7
答案 0 :(得分:1)
以下是如何在没有中间文件的情况下在一个语句中完成所有操作。
for /f "skip=2 tokens=3" %%a in ('reg query hklm\hardware\devicemap\serialcomm /v *ssudmdm* ^| find /i /v "end of search"') do set var=%%a
如果您出于某种原因必须拥有中间文件:
for /f "tokens=3" %%a in ('find /i "ssudmdm" output.txt') do set var=%%a