mkdirs方法
Java在cmd中实现shell命令cp,ls,cat,rm,mv,mkdir
linux中有许多很好⽤的命令,但是相对于windows中的cmd就没有那么丰富的命令,于是我就⾃⼰来实现⼀些命令吧。
实现浏览⽂件命令:cat
cat命令⽤于浏览⼀个⽂件⽂件的内容,在Linux中使⽤⽅式如下:cat ⽂件名,例如:cat replaceAll.java,效果如下图。
windows的dos命令⾏中也有相似的命令:type,placeAll.java
不过我有点不习惯使⽤这个命令,下⾯⾃⼰来实现⼀个cat命令。做法是使⽤Scanner类扫描这个⽂件,然后⼀⾏⼀⾏的读出,然后⼀⾏⼀⾏的打印即可。
然后打包成可执⾏jar 包,Copy.jar ,然后再写⼀个bat⽂件cat.bat来调⽤该Copy.jar 即可。上⾯的%1是传⼊到cat.bat 的第⼀个命令⾏参数,也就是要浏览的⽂件名,这⾥默认是浏览当前⽬录下的⽂件,然后
cat.bat 把接收到的这个命令⾏参数传给Cat.jar ,Cat.jar接收这个命令⾏参数(⽂件名),然后判断它是不是⼀个⽂件,如果是⽂件的话就把它打印出来。 完成的效果如下:
现在可以当然⽬录下输⼊ cat cat.bat ,浏览cat.bat
这个⽂件中的内容。注意不好混淆,第⼀个cat 是可执⾏脚本,⽽第⼆个cat.bat 只是作为批处理脚本的参数。运⾏效果如下。
不过现在cat这么命令这能在当前⽬录下运⾏,不能在所有不了下执⾏,这个时候需要把cat这个命令(程序)的路径配置到Path环境变量中,package  command.line.cat;
import  java.io.File;
import  java.io.FileNotFoundException;
import  java.util.Scanner;
public  class  Cat
{
public  static  void  main (String[] args)
{
String Property("user.dir");
String parameter=args[0].trim();
if (!parameter.equals("")&¶meter!=null )
{
File file=new  File(currunntPath+"\\"+parameter);
if (ists()&&file.isFile())
{
try
{
Scanner scanner=new  Scanner(file);
scanner.useDelimiter("\r\n");
String line=null ;
while (scanner.hasNext())
{
();
System.out.println(line);
}
} catch  (FileNotFoundException e)
{
// TODO Auto-generated catch block                    e.printStackTrace();
}
}
}
}
}
@echo off
::%cd%是当期的⼯作⽬录,也就是调⽤myclip 的路径
::%1是myclip 的第⼀个命令⾏参数
java -jar D:\dev\java\my\runable\ls\Cat .jar %1
不过现在cat这么命令这能在当前⽬录下运⾏,不能在所有不了下执⾏,这个时候需要把cat这个命令(程序)的路径配置到Path环境变量中,这样就可以在任何地⽅使⽤这个命令了。
好的,配置好环境变量后,就可在其他⽬录下执⾏这个我们做好的cat命令了。
例如:在Cat.java的⽬录中输⼊cat Cat.java,效果如下。
实现列表命令:ls
基本的ls命令可以列出⽂件或者⽬录,在Linux系统中效果如下:
现在来⽤批处理脚本和java实现这个功能,当然这⾥肯定没⽤Linux中的ls命令那样强⼤。不过勉强可以看看吧。
可以看到这个代码真是⼗分的简单粗暴,就是对其那些不好弄,我在想怎么⽤java来获取控制台的宽度,然后根据宽度和⽂件名的长度来调整打印的样式。这个我还没想好,就先凑合着⽤上⾯的吧。 同样编写调⽤的命令ls.bat:
因为ls命令和上⾯的cat命令在同⼀个⽬录下⾯,在上⾯的cat命令中已经配置好Path环境变量了,这⾥就不再配置了。记得要配置path环境变量,不然这个命令在别的地⽅将⽆法使⽤。
实现复制命令:cp Linux中cp命令⽤来复制⽂件,⽤法:cp ⽂件1 ⽂件2
,这样会把⽂件1中的内容,复制到⽂件2中。使⽤效果如下。
现在在window的dos命令⾏中来事项这个命令,我这⾥的事项⽅式是,使⽤Scanner类扫描⽂件1,然后⼀⾏⾏的读取出来。在重定向到⽂件2中。⽂件1和⽂件2通过命令⾏参数传⼊到java程序中。
public  class  List
{
public  static  void  main (String[] args)
{
String Property("user.dir");
File dir=new  File(curruntPath);
String[] filelist=dir.list();
for  (String string : filelist)
{
System.out.printf("%-20s",string);
}
}}
@echo off
java -jar D:\dev\java\my\runable\ls\List .jar
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.util.Scanner;
public class Copy
{
public static void main(String[] args)
{
if(!args[0].equals("")&&!args[1].equals("")&&args[0]!=null&&args[1]!=null)        {
/
/获取当前⼯作⽬录
String Property("user.dir");
String fileStr=args[0];
String copyToStr=args[1];
File infile=new File(curruntPath+"\\"+fileStr);
File outFile=new File(curruntPath+"\\"+copyToStr);
PrintStream fileOut=null;
PrintStream out=System.out;
ists()&&infile.isFile())
{
try
{
fileOut=new PrintStream(outFile);
Scanner scanner=new Scanner(infile);
scanner.useDelimiter("\r\n");
System.setOut(fileOut);
String line=null;
while(scanner.hasNext())
{
();
//()
System.out.println(line);
}
} catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
finally {
if(fileOut!=null)
{
fileOut.close();
}
System.setOut(out);
}
}
else
{
System.out.println("参数1错误"+AbsolutePath()+" 不是⼀个⽂件");
}
}
else
{
System.out.println("参数错误!");
}
}
}
对应的bat⽂件:cp.bat:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。