找不到批处理专区,就在这里问了
我用dir /b/s *.jpp *.h 列出了文件夹类的这些文件及其路径,但我希望得出的路径不包含文件夹前面的信息,即比如我得出的是c:\abc\java\j2me\a.h,我是在java文件夹下使用上述命令的,我希望得出的信息是j2me\a.h,也就是删除子目录的路径自信,不知道怎么做?

解决方案 »

  1.   

    好像不可吧, 用Java里面的文件浏览吧。那个方便。
    可是把dir的输出放在一个字串里, 然后处理字串
      

  2.   

    这个是得在批处理文件中执行的,要是在JAVA里我就不提出来了,用批处理的条件语句有没可能?
      

  3.   

    import java.io.File;
    import java.io.FileFilter;public class FileList {
    public static void main(final String[] args)
    {
    FileFilter filter = new FileFilter(){
    public boolean accept(File pathname){
    return pathname.isDirectory()
    || pathname.getName().endsWith(".h")
    || pathname.getName().endsWith(".jpp");
    }
    };
    File currentPath = new File(".");
    process(currentPath,filter);
    } static void process(File file,FileFilter filter)
    {
    if(file.isDirectory()){
    File[] files = file.listFiles(filter);
    for (File afile : files)
    process(afile,filter);
    }
    else{
    System.out.println(file.getPath());
    }
    }
    }
      

  4.   

    [code=BatchFile]@echo off
    setlocal enabledelayedexpansion
    for /r . %%a in (*.jpp *.h) do set var=%%a & echo !var:%cd%\=!
    echo on[/code]
      

  5.   

    写了个更通用一些的:[code=BatchFile]@echo off
    setlocal enabledelayedexpansion
    :label
    if "%1" neq "" set param=%1 %param% & shift & goto label
    for /f "usebackq" %%a in (`dir /b/s %param%`) do set var=%%a & echo !var:%cd%\=!
    set param=
    echo on[/code]在命令行中这样用(假定保存的文件名为 ff.bat)[code=BatchFile]C:\abc\java>ff *.bak *.jpp *.h[/code]