使用目录创建VC2003/VC2005工程

在项目中,想使用某个目录来创建一个工程,以方便调试,但发现Visual Studio 2003不支持创建工程来自目录,得让你自己一个一个的添加过滤目录,添加文件列表,很不方便。特写了此脚本方便创建,考虑有可能其他网友或有需要,特贴上以共享

 

--CreateProjectByPath.vbs

Dim fso, ProjectName, ProjectPath, FileFilter, SkipPathList, result
Dim totalfiles, curfileinx, totalfolders, curfolderinx
totalfiles = 0
curfileinx = 0
totalfolders = 1
curfolderinx = 1
if (wscript.arguments.count >= 1 and wscript.arguments.count <= 4) then
   ProjectName = wscript.arguments(0)
   if (wscript.arguments.count = 1) then
      ProjectPath = """."""
   FileFilter = ".*/.(cpp|c|cxx|hpp|h|def|odl|idl|hpj|bat|asm|asmx)"
   SkipPathList = """"
   else if (wscript.arguments.count = 2) then
      ProjectPath = wscript.arguments(1)
   FileFilter = ".*/.(cpp|c|cxx|hpp|h|def|odl|idl|hpj|bat|asm|asmx)"
   SkipPathList = """"
   else if (wscript.arguments.count = 3) then
      ProjectPath = wscript.arguments(1)
      FileFilter = wscript.arguments(2)
   SkipPathList = """"
   else if (wscript.arguments.count = 4) then
      ProjectPath = wscript.arguments(1)
      FileFilter = wscript.arguments(2)
   SkipPathList = wscript.arguments(3)
   end if
   end if
   end if
   end if
   CreateProjectByPath ProjectName, ProjectPath, FileFilter, SkipPathList
   wscript.stdout.write result
else
   ShowUsage
end if

Sub ShowUsage
    wscript.echo wscript.scriptname & " projectname projectpath FileFilter"
 wscript.echo "---FileFilter Syntax: use regex syntax"
End Sub

Sub CreateProjectByPath(ProjectName, ProjectPath, FileFilter, SkipPathList)
    Set fso = CreateObject("Scripting.FileSystemObject")
 tabCount = 1
 flag = 1
 result = result & "<?xml version=""1.0"" encoding=""gb2312""?>" & chr(13) & chr(10) 
 result = result & "<VisualStudioProject" & chr(13) & chr(10) 
 result = result & MakeTab(tabCount) & "ProjectType=""Visual C++""" & chr(13) & chr(10) 
 result = result & MakeTab(tabCount) & "Version=""7.10""" & chr(13) & chr(10)
 result = result & MakeTab(tabCount) & "Name=""" & ProjectName & """" & chr(13) & chr(10)
 result = result & MakeTab(tabCount) & "ProjectGUID=""{00000000-0000-0000-0000-888888888888}""" & chr(13) & chr(10)
 result = result & MakeTab(tabCount) & "Keyword=""Win32Proj"">" & chr(13) & chr(10)
 
 result = result & MakeTab(tabCount) & "<Platforms>" & chr(13) & chr(10)
 result = result & MakeTab(tabCount+1) & "<Platform" & chr(13) & chr(10)
 result = result & MakeTab(tabCount+2) & "Name=""Win32""/>" & chr(13) & chr(10)
 result = result & MakeTab(tabCount) & "</Platforms>" & chr(13) & chr(10)
 
 result = result & MakeTab(tabCount) & "<Configurations>" & chr(13) & chr(10)
 
 result = result & MakeTab(tabCount) & "<Configuration" & chr(13) & chr(10)
 result = result & MakeTab(tabCount+1) & "Name=""Debug|Win32""" & chr(13) & chr(10)
 result = result & MakeTab(tabCount+1) & "OutputDirectory=""Debug""" & chr(13) & chr(10)
 result = result & MakeTab(tabCount+1) & "IntermediateDirectory=""Debug""" & chr(13) & chr(10)
 result = result & MakeTab(tabCount+1) & "ConfigurationType=""1""" & chr(13) & chr(10) 
 result = result & MakeTab(tabCount+1) & "CharacterSet=""2"">" & chr(13) & chr(10)
 result = result & MakeTab(tabCount) & "</Configuration>" & chr(13) & chr(10)
 
 result = result & MakeTab(tabCount) & "<Configuration" & chr(13) & chr(10)
 result = result & MakeTab(tabCount+1) & "Name=""Release|Win32""" & chr(13) & chr(10) 
 result = result & MakeTab(tabCount+1) & "OutputDirectory=""Release""" & chr(13) & chr(10)
 result = result & MakeTab(tabCount+1) & "IntermediateDirectory=""Release""" & chr(13) & chr(10)
 result = result & MakeTab(tabCount+1) & "ConfigurationType=""1""" & chr(13) & chr(10)
 result = result & MakeTab(tabCount+1) & "CharacterSet=""2"">" & chr(13) & chr(10) 
 result = result & MakeTab(tabCount) & "</Configuration>" & chr(13) & chr(10)
 
 result = result & MakeTab(tabCount) & "</Configurations>" & chr(13) & chr(10)
 
 result = result & MakeTab(tabCount) & "<References>" & chr(13) & chr(10)
 result = result & MakeTab(tabCount) & "</References>" & chr(13) & chr(10) 
 
 result = result & MakeTab(tabCount) & "<Files>" & chr(13) & chr(10)
    IteratorPath ProjectPath, FileFilter, SkipPathList, "IteratorProjectFiles", flag, tabCount + 1
 result = result & MakeTab(tabCount) & "</Files>" & chr(13) & chr(10)
 
 result = result & MakeTab(tabCount) & "<Globals>" & chr(13) & chr(10)
 result = result & MakeTab(tabCount) & "</Globals>" & chr(13) & chr(10)
 result = result & "</VisualStudioProject>"
End Sub

function MakeTab(tabCount)
    dim ret
    for i = 1 to tabcount
    ret = ret & chr(9)
 next
 MakeTab = ret
end function

Sub IteratorPath(path, FileFilter, SkipPathList, IteratorFunc, flag, tabcount)
    Dim folder, subfolders, subfiles
    Set folder = fso.GetFolder(path)
    if not fso.FolderExists(path) then
        wscript.echo path
        wscript.echo "path's not exists"
        exit sub
    end if
  
 if (SKipPathList <> "") then
 if (MatchFilter(path, SkipPathList)) then
  exit sub
 end if
 end if
 
    set subfolders = folder.SubFolders
 totalfolders = totalfolders + subfolders.count
    if flag = 1 then 
  result = result & MakeTab(tabCount)     & "<Filter" & chr(13) & chr(10) _
                  & MakeTab(tabCount + 1) & "Name=""" & folder.name & """" & chr(13) & chr(10) _
      & MakeTab(tabCount + 1) & "Filter=""cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx""" & chr(13) & chr(10) _
      & MakeTab(tabCount + 1) & "UniqueIdentifier=""{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"">" & chr(13) & chr(10)
  flag = 0    
 else
        result = result & MakeTab(tabCount)     & "<Filter" & chr(13) & chr(10) _
                  & MakeTab(tabCount + 1) & "Name=""" & folder.name & """" & chr(13) & chr(10) _
                        & MakeTab(tabCount + 1) & "Filter="""">" & chr(13) & chr(10)
 end if 
    for each subfolder in subfolders
     curfolderinx = curfolderinx + 1
        curpath = path & "/" & subfolder.name
        IteratorPath curpath, FileFilter, SkipPathList, IteratorFunc, flag, tabcount + 1
    next
    cmd = IteratorFunc & " """ & path & """, """ & FileFilter & """," & tabcount + 1
    execute  cmd
    result = result & MakeTab(tabCount) &"</Filter>" & chr(13) & chr(10)
End Sub

Function MatchFilter(stringspec, filter)
 Dim RegEx, Matches
 Set RegEx = new RegExp
 RegEx.Pattern = filter
 RegEx.IgnoreCase = true
 RegEx.Global = true
 Set Matches = RegEx.execute(stringspec)
 MatchFilter = Matches.count > 0
End Function

Sub IteratorProjectFiles(path, FileFilter, tabcount)
    set iterfolder = fso.GetFolder(path)
 totalfiles = totalfiles + iterfolder.files.count
    for each file in iterfolder.files
     if (MatchFilter(file.name, FileFilter)) then
   result = result & MakeTab(tabCount)   & "<File" & chr(13) & chr(10) _
       & MakeTab(tabCount+1) & "RelativePath=""" & path & "/" & file.name & """>" & chr(13) & chr(10) _
       & MakeTab(tabCount)   & "</File>" & chr(13) & chr(10)
  end if
  curfileinx = curfileinx + 1
  wscript.stderr.write curfolderinx & "/" & totalfolders & " folders are handled," & curfileinx & "/" & totalfiles & " files are handled!" & chr(13)
    next
End Sub

 

 

如果想生成VC2005工程,仅需要把版本号version="7.10"改成version="8.00"即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值