小工具, 提取Eclipse工程下需要上传的文件

搞了个小工具, 做了一堆修改后, 需要把修改的东西放到服务器上, 但是怎么把如此多文件都一个不漏的抽出来呢?
1. 在上传svn的时候, 复制需要上传的文件路径
2. 粘贴, 执行, 就这么简单
3. 结果保存工程文件夹下面, 默认是upload文件夹中

这里需要配置的地方

var project_path="E:/develop/xxz/";
var source="source/java_source/";
var web_source="web_source/";
var build="build/classes/";
var dir='upload/';//打算复制到什么文件夹中
var classes='WEB-INF/classes/'; //把class文件移到此文件夹中 upload/WEB-INF/classes/


完整代码

<html>
<head>
<title>从Css中复制图片资源</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<style>body{font-size:12px;}</style>
</head>
<body>
从CSS文件或是网页文件中提取出图片地址, 并生成CMD文本供应使用<br>
<textarea id="s" rows="3" cols="100"></textarea>
<textarea id="rs" rows="3" cols="100"></textarea>
<input type="button" value="生成CMD" id="go" />
<hr />
复制 上传文件 (通过svn中复制出来路径)[使用前请配置Eclipse工程路径, 只能在IE中使用]<br>
<textarea id="s_copysvngo" rows="5" cols="100"></textarea>
<input type="button" value="生成CMD(同目录)" id="copysvngo" />
<input type="button" value="一键搞定(绝对目录)" id="copysvngo2" />
<br><br>
<div id="msg"></div>
<script>
function msg(x,y){
if(!y) $("#msg").html(x); else $("#msg").html($("#msg").html()+"<br>"+x);
}
$("#go").click(function(){
msg("Start---------------------");
var s=($("#s").val()+'');//.replace(/\)[^(]+?\(/g,'')
var reg=/\.{0,2}(\/{0,1}[^\/]+?)+\.gif|jpg/g;
reg=/[^\/)("']*?(\/[^\/)("']+?)*\.gif|jpg/g;
var d=(new Date()).getTime();
var arr=s.match(reg);
var dir='0000';
var cmd='md '+dir+'\r\n';

if(arr && arr.length>0){
for(var i=0;i<arr.length;i++){
cmd+='copy '+arr[i]+' '+dir+'/'+arr[i].replace(/.+\//g,'')+'\r\n';
}
cmd+='pause';
$("#rs").val(cmd.replace(/\//g,'\\'));
}else{
msg("No data");
}
msg("Done---------------------",1);
msg("Time:"+(((new Date()).getTime()-d)/1000)+"s",1);
});

//复制 上传文件 通过svn中复制出来路径
$("#copysvngo").click(function(){
msg("Start---------------------");
var s=($("#s_copysvngo").val()+'');//.replace(/\)[^(]+?\(/g,'')
var reg=/^(.+?\r|\n)$/g;
var d=(new Date()).getTime();
var arr=s.replace(/\r|\n/g,'\r').replace(/\r+/g,'\r').split('\r');
var dir='upload';
var cmd='md '+dir+'\r\npause\r\n';
msg("s.length="+s.length,1)
if(arr && arr.length>0){
var source="source/java_source/";
var web_source="web_source/";
var build="E:/develop/SZSC/build/classes/";
var CHECK={};
for(var i=0;i<arr.length;i++){
arr[i]=$.trim(arr[i].replace(/\r|\n/g,''));
if(arr[i].indexOf(".java")>source.length){
arr[i]=arr[i].replace('.java','.class').replace(source,build);
}
arr[i]=(arr[i].indexOf("\\")==0 || arr[i].indexOf("/")==0)?arr[i].substring(1):arr[i];
if(arr[i].length==0){msg("i="+i,1); continue;}
var path=arr[i].replace(/\r|\n/g,'');
var xname=arr[i].replace(/\r|\n/g,'').replace(/.+\//g,'');
var xname2=!!CHECK[xname]?(path.replace(source,"").replace(build,"").replace(xname,"").replace(/\/|\\/g,".")+xname):xname;
cmd+='copy '+path+' '+dir+'/'+xname2+' >> log.txt\r\n';
CHECK[xname]="1";//用于重名检查
}
cmd+='pause';
$("#s_copysvngo").val(cmd.replace(/\//g,'\\'));
}else{
msg("No data",1);
}
msg("Done---------------------",1);
msg("Time:"+(((new Date()).getTime()-d)/1000)+"s",1);
});


//复制 上传文件 通过svn中复制出来路径 , 针对eclipse IDE来说 [只能在IE中使用]
$("#copysvngo2").click(function(){

//使用前,请此配置此处
var project_path="E:/develop/xxz/";
var source="source/java_source/";
var web_source="web_source/";
var build="build/classes/";
var dir='upload/';//打算复制到什么文件夹中
var classes='WEB-INF/classes/'; //把class文件移到此文件夹中 upload/WEB-INF/classes/

msg("Start---------------------文件复制cmd命令生成器");
var s=($("#s_copysvngo").val()+'');//.replace(/\)[^(]+?\(/g,'')
var reg=/^(.+?\r|\n)$/g;
var d=(new Date()).getTime();
var arr=s.replace(/\r|\n/g,'\r').replace(/\r+/g,'\r').split('\r');

//io操作
var IO={
fso: new ActiveXObject("Scripting.FileSystemObject"),
createFolder:function(path){
path=path.replace(/\/$/,'');
var arr=path.split('/');
path="";
for(var i=0;i<arr.length;i++){
path+=arr[i]+'/';
if(!arr[i] || arr[i].indexOf(':')>1) continue;
if(!this.fso.FolderExists(path)) this.fso.CreateFolder(path);
}
},
copyFile:function(source,target){
this.fso.CopyFile(source,target);// overwrite old file
},
createFile:function(target, content){
var a = this.fso.CreateTextFile(target, true);
a.WriteLine(content);
a.Close();
}
}

msg("s.length="+s.length,1)

//开始解析
if(arr && arr.length>0){
for(var i=0;i<arr.length;i++){
arr[i]=$.trim(arr[i].replace(/\r|\n/g,''));
arr[i]=(arr[i].indexOf("\\")==0 || arr[i].indexOf("/")==0)?arr[i].substring(1):arr[i];
if(arr[i].length==0){msg("i="+i,1); continue;}
var fullpath=arr[i].replace(/\r|\n/g,'');
var newdir=fullpath.replace(source,classes).replace(web_source,'').replace(/\/[^\/]+?$/,'/');
var sourcepath="";
var targetpath="";
//如果目录不存在, 则创建目录
IO.createFolder(project_path+dir+newdir);
//把类目录下的文件移到此上面定义的classes文件夹中: 默认是:WEB-INF/classes/
if(arr[i].indexOf(source)>-1){
sourcepath=arr[i].replace('.java','.class').replace(source,build);
targetpath=dir+arr[i].replace('.java','.class').replace(source,classes);
}
//jsp,js, etc 文件
if(arr[i].indexOf(web_source)>-1){
sourcepath=fullpath;
targetpath=dir+fullpath.replace(web_source,'');
}
IO.copyFile(project_path+sourcepath,project_path+targetpath);
}

//path文件
IO.createFile(project_path+dir+"__path.txt",s.replace(new RegExp(source,'g'),classes).replace(new RegExp(web_source,'g'),''));

}else{
msg("No data",1);
}
msg("Done---------------------",1);
msg("Time:"+(((new Date()).getTime()-d)/1000)+"s",1);
});


</script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值