Windows 用于循环更改文件的批处理脚本

Windows 用于循环更改文件的批处理脚本,windows,batch-file,cmd,Windows,Batch File,Cmd,我有一个文件如下所示: Disk:Bus 0 Enclosure 7 Disk 14. State:Enabled Raw Capacity:402.61GB User Capacity:214.29GB LUN ID:18 LUN Type:RAID 5 Hot Spare Replacing:N/A Firmware:C3A8 Vendor:HITACHI Model:HUS15604 CLAR450 Bind Signature:0xcdc0 CLARiiON TLA Part Numb

我有一个文件如下所示:

Disk:Bus 0 Enclosure 7 Disk 14. State:Enabled Raw Capacity:402.61GB User Capacity:214.29GB LUN ID:18 LUN Type:RAID 5 Hot Spare Replacing:N/A Firmware:C3A8 Vendor:HITACHI Model:HUS15604 CLAR450 Bind Signature:0xcdc0 CLARiiON TLA Part Number:005049032 Drive Type:FC Current Speed:4Gbps Maximum Speed:4Gbps Disk:Bus 0 Enclosure 7 Disk 13. State:Enabled Raw Capacity:402.61GB User Capacity:214.29GB LUN ID:18 LUN Type:RAID 5 Hot Spare Replacing:N/A Firmware:C3A8 Vendor:HITACHI Model:HUS15604 CLAR450 Bind Signature:0xcdc0 CLARiiON TLA Part Number:005049032 Drive Type:FC Current Speed:4Gbps Maximum Speed:4Gbps Disk:Bus 0 Enclosure 7 Disk 12. State:Enabled Raw Capacity:402.61GB User Capacity:214.29GB LUN ID:18 LUN Type:RAID 5 Hot Spare Replacing:N/A Firmware:C3A8 Vendor:HITACHI Model:HUS15604 CLAR450 Bind Signature:0xcdc0 CLARiiON TLA Part Number:005049032 Drive Type:FC Current Speed:4Gbps Maximum Speed:4Gbps Disk State Raw_Capacity User_Capacity Bus 0 Enclosure 7 Disk 14. Enabled 402.61GB 214.29GB Bus 0 Enclosure 7 Disk 13. Enabled 402.61GB 214.29GB Bus 0 Enclosure 7 Disk 12. Enabled 402.61GB 214.29GB 磁盘:总线0存储模块7磁盘14。 状态:已启用 原始容量:402.61GB 用户容量:214.29GB LUN ID:18 LUN类型:RAID 5 热备盘更换:不适用 固件:C3A8 供应商:日立 型号:HUS15604 CLAR450 绑定签名:0xcdc0 CLARiiON TLA零件号:005049032 驱动器类型:FC 当前速度:4Gbps 最高速度:4Gbps 磁盘:总线0存储模块7磁盘13。 状态:已启用 原始容量:402.61GB 用户容量:214.29GB LUN ID:18 LUN类型:RAID 5 热备盘更换:不适用 固件:C3A8 供应商:日立 型号:HUS15604 CLAR450 绑定签名:0xcdc0 CLARiiON TLA零件号:005049032 驱动器类型:FC 当前速度:4Gbps 最高速度:4Gbps 磁盘:总线0存储模块7磁盘12。 状态:已启用 原始容量:402.61GB 用户容量:214.29GB LUN ID:18 LUN类型:RAID 5 热备盘更换:不适用 固件:C3A8 供应商:日立 型号:HUS15604 CLAR450 绑定签名:0xcdc0 CLARiiON TLA零件号:005049032 驱动器类型:FC 当前速度:4Gbps 最高速度:4Gbps 我希望读取文件并写入如下内容:

Disk:Bus 0 Enclosure 7 Disk 14. State:Enabled Raw Capacity:402.61GB User Capacity:214.29GB LUN ID:18 LUN Type:RAID 5 Hot Spare Replacing:N/A Firmware:C3A8 Vendor:HITACHI Model:HUS15604 CLAR450 Bind Signature:0xcdc0 CLARiiON TLA Part Number:005049032 Drive Type:FC Current Speed:4Gbps Maximum Speed:4Gbps Disk:Bus 0 Enclosure 7 Disk 13. State:Enabled Raw Capacity:402.61GB User Capacity:214.29GB LUN ID:18 LUN Type:RAID 5 Hot Spare Replacing:N/A Firmware:C3A8 Vendor:HITACHI Model:HUS15604 CLAR450 Bind Signature:0xcdc0 CLARiiON TLA Part Number:005049032 Drive Type:FC Current Speed:4Gbps Maximum Speed:4Gbps Disk:Bus 0 Enclosure 7 Disk 12. State:Enabled Raw Capacity:402.61GB User Capacity:214.29GB LUN ID:18 LUN Type:RAID 5 Hot Spare Replacing:N/A Firmware:C3A8 Vendor:HITACHI Model:HUS15604 CLAR450 Bind Signature:0xcdc0 CLARiiON TLA Part Number:005049032 Drive Type:FC Current Speed:4Gbps Maximum Speed:4Gbps Disk State Raw_Capacity User_Capacity Bus 0 Enclosure 7 Disk 14. Enabled 402.61GB 214.29GB Bus 0 Enclosure 7 Disk 13. Enabled 402.61GB 214.29GB Bus 0 Enclosure 7 Disk 12. Enabled 402.61GB 214.29GB 磁盘状态原始容量用户容量 总线0存储模块7磁盘14。已启用402.61GB 214.29GB 总线0存储模块7磁盘13。已启用402.61GB 214.29GB 总线0存储模块7磁盘12。已启用402.61GB 214.29GB 正在尝试使用FOR循环。感谢您的帮助。

您可以尝试以下方法:

@echo off &setlocal enabledelayedexpansion
for /f "delims=" %%a in (file) do (
    set "line=%%a"
    if /i "!line:Disk:=!" neq "!line!" <nul set/p"=!line:*Disk:=!   "
    if /i "!line:Raw=!" neq "!line!" <nul set/p"=!line:*Capacity:=! "
    if /i "!line:User=!" neq "!line!" <nul set/p"=!line:*Capacity:=!"
    if /i "!line:Maximum Speed=!" neq "!line!" echo(
)
@echo off&setlocal enabledelayedexpansion
对于/f“delims=”%(文件)do中的%%a(
设置“行=%%a”
如果/i“!line:Disk:=!“neq”!line!”您可以尝试以下方法:

@echo off &setlocal enabledelayedexpansion
for /f "delims=" %%a in (file) do (
    set "line=%%a"
    if /i "!line:Disk:=!" neq "!line!" <nul set/p"=!line:*Disk:=!   "
    if /i "!line:Raw=!" neq "!line!" <nul set/p"=!line:*Capacity:=! "
    if /i "!line:User=!" neq "!line!" <nul set/p"=!line:*Capacity:=!"
    if /i "!line:Maximum Speed=!" neq "!line!" echo(
)
@echo off&setlocal enabledelayedexpansion
对于/f“delims=”%(文件)do中的%%a(
设置“行=%%a”

if/i“!line:Disk:=!“neq”!line!”
文件。log
是此处的输入文件。我使用了Endro的技术,但做了一些小改动

@echo off
setlocal enabledelayedexpansion
(
echo Disk            State     Raw_Capacity  User_Capacity
for /f "usebackq delims=" %%a in ("file.log") do (
    set "line=%%a"
    if /i "!line:Disk:=!" neq "!line!" <nul set/p"=!line:*Disk:=!   "
    if /i "!line:State=!" neq "!line!" <nul set/p"=!line:*State:=!   "
    if /i "!line:Raw=!"   neq "!line!" <nul set/p"=!line:*Capacity:=! "
    if /i "!line:User=!"  neq "!line!" <nul set/p"=!line:*Capacity:=!"&echo(
)
)>"output file.txt"
@echo关闭
延迟扩展
(
回显磁盘状态原始容量用户容量
对于/f“usebackq delims=“%%a in”(“file.log”)do(
设置“行=%%a”

if/i“!line:Disk:=!“neq”!line!”
文件。log
是此处的输入文件。我使用了Endro的技术,但做了一些小改动

@echo off
setlocal enabledelayedexpansion
(
echo Disk            State     Raw_Capacity  User_Capacity
for /f "usebackq delims=" %%a in ("file.log") do (
    set "line=%%a"
    if /i "!line:Disk:=!" neq "!line!" <nul set/p"=!line:*Disk:=!   "
    if /i "!line:State=!" neq "!line!" <nul set/p"=!line:*State:=!   "
    if /i "!line:Raw=!"   neq "!line!" <nul set/p"=!line:*Capacity:=! "
    if /i "!line:User=!"  neq "!line!" <nul set/p"=!line:*Capacity:=!"&echo(
)
)>"output file.txt"
@echo关闭
延迟扩展
(
回显磁盘状态原始容量用户容量
对于/f“usebackq delims=“%%a in”(“file.log”)do(
设置“行=%%a”

if/i“!line:Disk:=!“neq”!line!”主题的另一个变体:)


主题的另一个变体:)


向我们展示你迄今为止尝试过的东西..这不是谷歌..你使用的是什么操作系统?你说的“批处理文件”是什么意思?Windows CMD.EXE?你为什么要使用它?你不能使用PowerShell吗?向我们展示你迄今为止尝试过的东西..这不是谷歌..你使用的是什么操作系统?你说的“批处理文件”是什么意思?Windows CMD.EXE?为什么必须使用它?不能使用PowerShell吗?