有的时候,我们可能需要替换某些目录下的一些文件,手动去一个个目录找的话,就会比较麻烦,这时候,就是我们程序员上场的时候了,程序虽然好写,但是dos命令并不是每个人都玩的转的,而且最令人厌烦的事是Linux和Dos命令差别极大,Linux上一条cp -f A B的命令,DOS下可不简单。
下面介绍一下DOS复制文件的命令:
xcopy C:\info.txt D:\ /Y
取消提示以确认要覆盖现有目标文件。
C:\info.txtD:\/Yxcopy C:\info.txt D:\D:\/Y
说完了DOS命令,再来谈谈,程序如何执行,这里拿PHP举例,毕竟是老本行
PHP执行命令有一个函数exec(),将命令输入到里面就可以了,比如:
<?php
$cmd = "xcopy C:\info.txt D:\ /Y";
exec($cmd);
如果是同一目录下,又该怎么写呢, 这里举个特殊例子,有一个名字叫做170tu的目录,其实就是以数字开头的目录
<?php
$cmd = "xcopy .\a.txt .\170tu\ /Y";
exec($cmd);
170tu是程序当前目录下的一个子目录,执行之后,发现没有任何变化,单拿出来这条命令,手动去执行,却发现可以执行成功,哪里出错了呢?
这是不妨打印一下
<?php
$cmd = "xcopy .\a.txt .\170tu\ /Y";
echo $cmd;
die; // 打个断点
exec($cmd);
输出结果如下:
xcopy .\a.txt .xtu\ /Y
\
$cmd = "xcopy .\\a.txt .\\170tu\\ /Y";
这样就不会出现转义的错误了,当然Linux下用/表是地址分割符,这样的区别也得留意