Loops DOS FOR循环-我可以使用整个单词作为分隔符(多字符分隔符)吗
我有一个类似以下内容的源文件:Loops DOS FOR循环-我可以使用整个单词作为分隔符(多字符分隔符)吗,loops,for-loop,dos,delimiter,Loops,For Loop,Dos,Delimiter,我有一个类似以下内容的源文件: Name SerialNumber \\.\PHYSICALDRIVE1 000000002027612 \\.\PHYSICALDRIVE0 000000002027476 \\.\PHYSICALDRIVE2 00000000202746E \\.\PHYSICALDRIVE3 00000000202760E 在dos中使用FOR循环,我需要能够解析出与每个PHYSICALDRIVE条目
Name SerialNumber
\\.\PHYSICALDRIVE1 000000002027612
\\.\PHYSICALDRIVE0 000000002027476
\\.\PHYSICALDRIVE2 00000000202746E
\\.\PHYSICALDRIVE3 00000000202760E
在dos中使用FOR循环,我需要能够解析出与每个PHYSICALDRIVE条目关联的数字,以便稍后在bat文件中使用。例:1,0,2和3)
从我收集的数据来看,delims=一次只看一个字符。
因为我不能说delims=PHYSICALDRIVE,而让它把它当作一个分隔符。
有人能举个例子说明如何只解析字符串末尾的数字吗
如果有问题,使用延迟扩展
谢谢。我认为任何解决方案都需要首先解析出完整的列值,然后使用SET search and replace或substring解析出末尾的数字 我假设Name列值中永远不能有空格。因此/F分隔符的默认值将非常容易地解析出第1列 如果驱动器号始终小于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!
)
我认为任何解决方案都需要首先解析出完整的列值,然后使用SET search and replace或substring解析出最后的数字 我假设Name列值中永远不能有空格。因此/F分隔符的默认值将非常容易地解析出第1列 如果驱动器号始终小于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!
)
谢谢你,我做到了。对于未来的灵活性,我选择了10个或更多的选项。谢谢你。对于未来的灵活性,我选择了10个或更多的选项。