JScript实现将指定目录下的vc工程加到解决方案
作者:朱金灿
来源:http://blog.csdn.net/clever101
main(); function main()
{
try
{
var WSShell = WScript.CreateObject("WScript.Shell");
var num = WScript.ScriptFullName.lastIndexOf("\\");
// 获取当前路径
var strCurPath = WScript.ScriptFullName.substr(0,num);
var FileSys = WScript.CreateObject("Scripting.FileSystemObject");
// 判断当前文件夹是否存在
if (FileSys.FolderExists(strCurPath))
{
// 获取vs2008d的dte对象
var DTE = new ActiveXObject("VisualStudio.DTE.9.0");
DTE.MainWindow.Visible = false; var strPluginFolder = strCurPath + "\\Plugin";
// 判断临时文件夹是否存在,若不存在就创建。临时文件夹用于存放创建
var strTempPath = strCurPath + "\\temp";
var strSolution = strTempPath+"\\AllPlugin.sln";
if (FileSys.FileExists(strSolution))
FileSys.DeleteFile(strSolution); var sln = DTE.Solution;
if(!FileSys.FolderExists(strTempPath))
{
FileSys.CreateFolder(strTempPath);
}
// 创建空白的解决方案
sln.Create(strTempPath,"AllPlugin");
sln.SaveAs(strSolution);
sln.Open(strSolution);
var PluginFolder = FileSys.GetFolder(strPluginFolder);
// 获取所有子文件夹,遍历所有的子文件夹
var PlugSet = new Enumerator(PluginFolder.SubFolders);
for (var i = 0 ; !PlugSet.atEnd(); PlugSet.moveNext(),i++)
{
var strProjectFolder = strPluginFolder + "\\";
strProjectFolder = strProjectFolder + PlugSet.item().Name;
var ProjectFolder = FileSys.GetFolder(strProjectFolder);
// 获取所有的文件
var fenum = new Enumerator(ProjectFolder.Files);
for (var j = 0 ; !fenum.atEnd(); fenum.moveNext(),j++)
{
var strPrjFileName = fenum.item().Name;
var strSuff = FileSys.GetExtensionName(strPrjFileName);
// 假如文件是vc工程文件,就加到解决方案中
if((strSuff=="vcproj"))
{
try
{
var strProjectFolder = strProjectFolder + "\\";
strPrjFileName = strProjectFolder + strPrjFileName;
sln.AddFromFile(strPrjFileName);
sln.SaveAs(strSolution);
WScript.Sleep(3000);
}
catch(e)
{
WScript.Echo(e.description);
}
break;
}
}
}
sln.Close(); // 关闭解决方案
}
else
{
WScript.Echo("the current path isnot exist!");
}
}
catch(e)
{
WScript.Echo(e.description);
}
}
JScript实现将指定目录下的vc工程加到解决方案的更多相关文章
- 使用JScript编译指定目录下所有工程
作者:朱金灿 来源:http://blog.csdn.net/clever101 我遇到这样一个问题:在一个插件工程目录下的插件工程越来越多,因此通过建一个解决方案然后把新增加的工程逐个添加进解决方案 ...
- [No000073]C#直接删除指定目录下的所有文件及文件夹(保留目录)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本
摘自:http://blog.csdn.net/forandever/article/details/5711319 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本 ...
- python中获取指定目录下所有文件名列表的程序
http://blog.csdn.net/rumswell/article/details/9818001 # -*- coding: utf-8 -*-#~ #------------------- ...
- linux复制指定目录下的全部文件到另一个目录中
linux复制指定目录下的全部文件到另一个目录中复制指定目录下的全部文件到另一个目录中文件及目录的复制是经常要用到的.linux下进行复制的命令为cp.假设复制源目录 为 dir1 ,目标目录为dir ...
- C# 获取指定目录下所有文件信息、移动目录、拷贝目录
/// <summary> /// 返回指定目录下的所有文件信息 /// </summary> /// <param name="strDirectory&qu ...
- PHP 获取指定目录下所有文件(包含子目录)
PHP 获取指定目录下所有文件(包含子目录) //glob — 寻找与模式匹配的文件路径 $filter_dir = array('CVS', 'templates_c', 'log', 'img', ...
- C++查找指定目录下所以指定类型的文件
/*************************************************************** 函数名称:FindFile 查找指定目录下指定文件 输入:fileNa ...
- Java 读取指定目录下的文件名和目录名
需求:读取指定目录下的文件名和目录名 实现如下: package com.test.common.util; import java.io.File; public class ReadFile { ...
随机推荐
- uvalive 6393(uva 1572) Self-Assembly 拓扑排序
题意: 给出一些正方形,这些正方形的每一条边都有一个标号.这些标号有两种形式:1.一个大写字母+一个加减号(如:A+, B-, A-......), 2.两个0(如:00):这些正方形能够任意翻转和旋 ...
- 适用android的MVP:怎样组织展示层
原文 MVP for Android:How to organize presentation layer http://antonioleiva.com/mvp-android/ 译文 MVP(Mo ...
- IIS服务器设置http自动跳转https方法
很多站长在部署SSL证书后,网站实现https加密访问,但考虑到用户习惯了http访问,很多外链也是http访问形式,所以需要在IIS服务器配置http自动跳转https,避免用户通过http访问不到 ...
- LA 3882 - And Then There Was One(约瑟夫 递归)
看题传送门 题目大意: N个数排成一圈,第一次删除m,以后每k个数删除一次,求最后一被删除的数. 如果这题用链表或者数组模拟整个过程的话,时间复杂度都将高达O(nk),而n<=10000,k&l ...
- AIR 初步 Javascript学习之cookie操作
//设置cookie的名称,值,过期时间 function setCookie(cookieName,cookieValue,cookieExpire) { v ...
- POJ 3100 Root of the Problem || 1004 Financial Management 洪水!!!
水两发去建模,晚饭吃跟没吃似的,吃完没感觉啊. ---------------------------分割线"水过....."--------------------------- ...
- ZOJ 1108 FatMouse's Speed (HDU 1160) DP
传送门: ZOJ:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=108 HDU :http://acm.hdu.edu.cn/s ...
- js如何生成[n,m]的随机数
js如何生成[n,m]的随机数 一.总结 一句话总结:生成随机数就是用的Math的random方法. 1.Math.random()得到的数据的左右开闭情况是怎样的? 左闭又开 所以Math.floo ...
- 【47.40%】【codeforces 743B】Chloe and the sequence
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- arm交叉编译Valgrind
1. wget http://valgrind.org/downloads/valgrind-3.9.0.tar.bz2 tar xvf valgrind-3.9.0.tar.bz2 cd valgr ...