Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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
Batch file 我有一个文本文件,其中包含我需要提取并导出到电子表格的信息_Batch File_Powershell 2.0 - Fatal编程技术网

Batch file 我有一个文本文件,其中包含我需要提取并导出到电子表格的信息

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

我的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:    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

我希望每个策略的电子表格的输出包括以下字段:

  • 保单名称
  • 策略类型
  • 硬件
  • 操作系统
  • 客户
  • 包括
  • 时间表
文本文件上可能有50-60个策略。 我在一个powershell上工作,但没有进展(

越简单越好

新年快乐!

@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