Batch file 我有一个文本文件,其中包含我需要提取并导出到电子表格的信息
我的NetBackup计划文本文件包含需要提取和分组的数据字段 下面是一个有两个策略的示例:Batch file 我有一个文本文件,其中包含我需要提取并导出到电子表格的信息,batch-file,powershell-2.0,Batch File,Powershell 2.0,我的NetBackup计划文本文件包含需要提取和分组的数据字段 下面是一个有两个策略的示例: POLICIES Policy Name: Windows_Server_1 Policy Type: MS-Windows-NT Active: no Effective Date: 06/24/2014 01:00:00 Backup network drives: no Collect TIR info: no Mult. Data Streams
POLICIES
Policy Name: Windows_Server_1
Policy Type: MS-Windows-NT
Active: no
Effective Date: 06/24/2014 01:00:00
Backup network drives: no
Collect TIR info: no
Mult. Data Streams: no
Client Enctypt: no
Checkpoint: no
Policy Priority: 0
Max Jobs/Policy: Unlimited
Disastery Recovery: 0
Collect BMR info: no
Residence: BackupSrv01-hcart2
Volume Pool: NetBackup
Server group: *Any*
Keyword: (none specified)
Residence is Lifecycle Policy: no
Granular Restore Info: no
HW/OS/Client: PC Windows2008 WinServer01
Include: All_Local_Drives
Schedule: Full
Type: Full Backup
Frequency: every 7 days
Maximum MPX: 1
Synthetic: 0
PFI Recovery: 0
Retention Level: 8
Number Copies: 0
Fail on error: 0
Residence: (specific storage unit not required)
Volume Pool: (same as policy volume pool)
Server Group: (Same as specified for policy)
Residence is Storage Lifecycle Policy: 0
Policy Name: Unix_Server_10
Policy Type: Unix
Active: no
Effective Date: 06/24/2014 01:00:00
Backup network drives: no
Collect TIR info: no
Mult. Data Streams: no
Client Enctypt: no
Checkpoint: no
Policy Priority: 0
Max Jobs/Policy: Unlimited
Disastery Recovery: 0
Collect BMR info: no
Residence: BackupSrv01-hcart2
Volume Pool: NetBackup
Server group: *Any*
Keyword: (none specified)
Residence is Lifecycle Policy: no
Granular Restore Info: no
HW/OS/Client: Unix Unix Unix_Server_10
Include: All_Local_Drives
Schedule: Full
Type: Full Backup
Frequency: every 7 days
Maximum MPX: 1
Synthetic: 0
PFI Recovery: 0
Retention Level: 8
Number Copies: 0
Fail on error: 0
Residence: (specific storage unit not required)
Volume Pool: (same as policy volume pool)
Server Group: (Same as specified for policy)
Residence is Storage Lifecycle Policy: 0
我希望每个策略的电子表格的输出包括以下字段:
- 保单名称
- 策略类型
- 硬件
- 操作系统
- 客户
- 包括
- 时间表
@ECHO OFF
SETLOCAL
::
::通用CSV生成器
::
电话:zap$#
::按输出顺序排列的列名
SET/a outcolumns=0
对于中的%%a(“策略名称”“策略类型”关键字
硬件操作系统客户端包括计划)DO调用:设置#%%a
::新数据项从何处开始?
设置“newdataitem=策略名称”
::读取并生成
(
对于/f“tokens=1*delims=:”%(q27672783.txt)中的%%a(
如果“%%a”==%newdataitem%”调用:showline
设置“#0=%%a”
对于“%%b”中的/f“tokens=*”%%c,请设置“newdata=%%c”&调用:SET$
)
如果定义了$0调用:showline
)>“newfile.txt”
后藤:EOF
::递增列计数&记录名称&记录标题&设置“已加载标题”
:设置#
SET/a outcolumns+=1
设置#%outcolumns%=%1
设置$%outcolumns%%=%~1
设置$0=Y
后藤:eof
::在列#0中存储新数据
:设置$
对于/f“tokens=1*delims==”('set#')中的%%d,如果“%%e”==”%0%“set selected=%%d,则执行此操作
设置“$%已选择:~1%=%newdata%”
设置$0=Y
后藤:eof
:showline
设置“大纲=”
对于/L%%g IN(1,1,%outcolumns%)DO(调用集“outline=%%outline%%,“%%$%%g%%”)
回音%大纲:~1%
)
电话:zap$
后藤:eof
::删除以$or开头的变量#
:zap$#
对于%%b IN($#)DO For/F“delims=”%%a IN('set%%b 2^>Nul')DO set“%%a=”
后藤:eof
::删除开始时的变量$
:ZAP$
对于/F“delims=”('set$2^>Nul')中的%%a,请执行设置“%%a=”
后藤:eof
这里有一个用于此类文件的原始CSV生成器。制作的每个文件都将被引用。您提供的数据中没有“硬件”或“操作系统”或“客户机”数据项-它们对您有意义,对我没有意义-您必须明确。我添加“关键字”列只是为了证明(括号中的单词序列)
的处理是正确的,但正如我所说,“这是原始的,可能无法清晰地处理许多常见的文本形式,我也没有冒险只引用包含列分隔符的文件(在本例中为逗号)
我使用了一个名为q276783.txt
的文件,其中包含用于测试的数据
生成newfile.txt