代码改变世界

批处理判断文件夹是否存在

2009-12-30 17:33  Virus-BeautyCode  阅读(50424)  评论(0编辑  收藏  举报

先看一段bat命令

 

@echo off
@title 批处理判断文件夹是否存在

if exist folder1 (
   echo "已经存在文件夹"
) else (
md folder1
)

if not exist folder2 md folder2

pause

 

命令中首先判断当前目录中是否存在folder1,如果存在,打印“已经存在文件夹”;如果不存在就用md命令建立文件夹。

 

 


1. for in 结构:

下面这个语句可以把当前文件夹所有子文件夹下的txt文件合并成一个文件
for /D %%d in (*) do type %%d\*.txt >>result.txt

有时候程序输出的txt文件最后一行缺少回车符号,如果两个文件直接用type重定向合并,会导致错误,所以可以做一个空行文件oneline.txt,然后改成这种:
for /D %%d in (*) do type %%d\*.txt oneline.txt >>result.txt
这样多个文件合并时总是把oneline.txt 

2. 取日期和时间。
批处理环境里可以使用%date%变量和%time%变量,不同的机器这个变量的格式也不同,
可以试试echo %date% %time%看格式
然后使用:~begin,len的方式取的变量的字串类似函数substr($str, $begin, $len),例如
echo %date%
结果输出:2006-06-20 星期二
那么取从0开始的索引0,字串长度为10,既:
echo %date:~0,10%
结果输出:2006-06-20


例如我想合并今天的日志文件,可以这样:
set myval=%date:~0,10%

for /D %%d in (*) do type %%d\%myval%.log >>result.txt 

 

 

 

 不同机器使用cmd拷贝文件,思路是,先建立链接,然后映射网络驱动器,然后就可以拷贝了

 

net use z: \\192.168.2.112\C$ "wyzwyw" /USER:Administrator
copy 1.txt z:
 

copy z:\boot.ini c:\boot.txt 

net use z: /delete