Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops DOS FOR循环-我可以使用整个单词作为分隔符(多字符分隔符)吗_Loops_For Loop_Dos_Delimiter - Fatal编程技术网

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个或更多的选项。