DOS FOR循环 - 我可以用整个单词作为分隔符(多字符分隔符)(DOS FOR loop - C

2019-10-17 03:01发布

我有一个看起来像这样的源文件:

Name                SerialNumber          
\\.\PHYSICALDRIVE1  000000002027612  
\\.\PHYSICALDRIVE0  000000002027476 
\\.\PHYSICALDRIVE2  00000000202746E  
\\.\PHYSICALDRIVE3  00000000202760E  

使用在DOS中循环我需要能够分析出只是每个PHYSICALDRIVE条目相关的号码要在bat文件以后使用。 例如:1,0,2和3)

从我所收集的delims =只看一次一个字符。 因为我不能说delims = PHYSICALDRIVE并让它可以把它看成一个单一的分隔符。 任何人都可以就如何在字符串末尾解析出只有数个例子吗?

如果它的事项正在使用延迟扩展。

谢谢。

Answer 1:

我认为,任何解决方案都需要先解析出完整的列值,然后使用SET搜索和替换或子在最后解析出号码。

我假设的名称列值可从来没有在它的空间。 所以FOR / F定界符默认会解析出第一个栏很轻松了。

如果驱动器数量将始终小于10则

for /f %%A in (yourFileName.txt) do (
  set "drive=%%A"
  set "drive=!drive:~-1!"
  echo !drive!
)

否则,如果它可以是10或大于

for /f %%A in (yourFileName.txt) do (
  set "drive=%%~A"
  set "drive=!drive:*physicaldrive=!"
  echo !drive!
)


文章来源: DOS FOR loop - Can I use an entire word as a delimiter (multi-character-delimiter)