使用目录创建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"即可

数据治理是确保数据准确性、可靠性、安全性、可用性和完整性的体系和框架。它定义了组织内部如何使用、存储、保护和共享数据的规则和流程。数据治理的重要性随着数字化转型的加速而日益凸显,它能够提高决策效率、增强业务竞争力、降低风险,并促进业务创新。有效的数据治理体系可以确保数据在采集、存储、处理、共享和保护等环节的合规性和有效性。 数据质量管理是数据治理中的关键环节,它涉及数据质量评估、数据清洗、标准化和监控。高质量的数据能够提升业务决策的准确性,优化业务流程,并挖掘潜在的商业价值。随着大数据和人工智能技术的发展,数据质量管理在确保数据准确性和可靠性方面的作用愈发重要。企业需要建立完善的数据质量管理和校验机制,并通过数据清洗和标准化提高数据质量。 数据安全与隐私保护是数据治理中的另一个重要领域。随着数据量的快速增长和互联网技术的迅速发展,数据安全与隐私保护面临前所未有的挑战。企业需要加强数据安全与隐私保护的法律法规和技术手段,采用数据加密、脱敏和备份恢复等技术手段,以及加强培训和教育,提高安全意识和技能水平。 数据流程管理与监控是确保数据质量、提高数据利用率、保护数据安全的重要环节。有效的数据流程管理可以确保数据流程的合规性和高效性,而实时监控则有助于及时发现并解决潜在问题。企业需要设计合理的数据流程架构,制定详细的数据管理流程规范,并运用数据审计和可视化技术手段进行监控。 数据资产管理是将数据视为组织的重要资产,通过有效的管理和利用,为组织带来经济价值。数据资产管理涵盖数据的整个生命周期,包括数据的创建、存储、处理、共享、使用和保护。它面临的挑战包括数据量的快速增长、数据类型的多样化和数据更新的迅速性。组织需要建立完善的数据管理体系,提高数据处理和分析能力,以应对这些挑战。同时,数据资产的分类与评估、共享与使用规范也是数据资产管理的重要组成部分,需要制定合理的标准和规范,确保数据共享的安全性和隐私保护,以及建立合理的利益分配和权益保障机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值