找不到批处理专区,就在这里问了
我用dir /b/s *.jpp *.h 列出了文件夹类的这些文件及其路径,但我希望得出的路径不包含文件夹前面的信息,即比如我得出的是c:\abc\java\j2me\a.h,我是在java文件夹下使用上述命令的,我希望得出的信息是j2me\a.h,也就是删除子目录的路径自信,不知道怎么做?
我用dir /b/s *.jpp *.h 列出了文件夹类的这些文件及其路径,但我希望得出的路径不包含文件夹前面的信息,即比如我得出的是c:\abc\java\j2me\a.h,我是在java文件夹下使用上述命令的,我希望得出的信息是j2me\a.h,也就是删除子目录的路径自信,不知道怎么做?
可是把dir的输出放在一个字串里, 然后处理字串
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());
}
}
}
setlocal enabledelayedexpansion
for /r . %%a in (*.jpp *.h) do set var=%%a & echo !var:%cd%\=!
echo on[/code]
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]