如何使用批处理文件读取.MF文件的内容?

时间:2016-05-02 06:28:35

标签: batch-file

我有一个文件夹结构:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:layout_margin="40dp">


        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="5000"
            android:textSize="20dp"
            android:layout_margin="80dp"
            android:scaleY="12.8"/>

</RelativeLayout>

LDS中有许多不同名称的文件夹(所以我将其称为some_folder)。在每个some_folder中,我有一个文件夹 META_INF ,在其中,我有一个名为C:\LDS\some_folder/META_INF/MANIFEST.MF 的文件。

每个MANIFEST.MF都有内容:

  

清单 - 版本:1.0

     

Class-Path:artifact-version:1.0.0

我需要在WINDOWS中使用批处理文件显示文件夹名称,MANIFEST.MF的上次修改日期和每个文件夹的工件版本号。

1 个答案:

答案 0 :(得分:0)

我将从打开的命令行窗口开始使用dir /b /s C:\LDS\MANIFEST.MF。这应列出MANIFEST.MF及其子目录下的所有C:\LDS个文件。然后

for /F "delims=" %G in ('dir /b /s C:\LDS\MANIFEST.MF') do @echo %G %~tG

应显示相同的列表 上次修改日期。然后

for /F "delims=" %G in ('dir /b /s C:\LDS\MANIFEST.MF') do @echo %G %~tG & type "%~fG"

应显示每个文件的上一个列表内容。然后

for /F "delims=" %G in ('dir /b /s C:\LDS\MANIFEST.MF') do @echo %G %~tG & type "%~fG"|findstr /I "artifact-version"

应将之前列表中每个文件的内容缩小为包含"artifact-version"字符串的行。

这是我解决这类问题的方法。在批处理脚本中,将%中的%G百分号加倍,如下所示:

@ECHO OFF
SETLOCAL EnableExtensions
for /F "delims=" %%G in ('dir /b /s C:\LDS\MANIFEST.MF') do (
    echo %%G %%~tG
    type "%%~fG"|findstr /I "artifact-version"
    rem here you could substitute previous `echo … & type …` commands
    rem          with another code snippet to make output more `nice`
)

资源(必读):