Powershell 什么是分享脚本创作和编辑的正确方式?

Powershell 什么是分享脚本创作和编辑的正确方式?,powershell,scripting,Powershell,Scripting,在我的脚本开发中,我经常在从头开始之前检查脚本是否已经编写过。通常我至少可以通过谷歌或其他方式找到一些我需要的东西。然后,我根据自己的需要调整所发现的内容,并将其投入生产。作为最佳实践,我会评论我的代码并包含作者信息(我不喜欢剽窃)。然而,如何以及何时添加/更改作者名称成为了一个问题。我将使用Ed Wilson博客上的一个示例脚本作为参考: Function Get-OutlookCalendar { <# .Synopsis This function return

在我的脚本开发中,我经常在从头开始之前检查脚本是否已经编写过。通常我至少可以通过谷歌或其他方式找到一些我需要的东西。然后,我根据自己的需要调整所发现的内容,并将其投入生产。作为最佳实践,我会评论我的代码并包含作者信息(我不喜欢剽窃)。然而,如何以及何时添加/更改作者名称成为了一个问题。我将使用Ed Wilson博客上的一个示例脚本作为参考:

Function Get-OutlookCalendar {
    <#
   .Synopsis
    This function returns appointment items from default Outlook profile
   .Description
    This function returns appointment items from default Outlook profile. It
    uses the Outlook interop assembly to use the olFolderCalendar enumeration.
    It creates a custom object consisting of Subject, Start, Duration, Location
    for each appointment item.
   .Example
    Get-OutlookCalendar |
    where-object { $_.start -gt [datetime]"5/10/2011" -AND $_.start -lt `
    [datetime]"5/17/2011" } | sort-object Duration
    Displays subject, start, duration and location for all appointments that
    occur between 5/10/11 and 5/17/11 and sorts by duration of the appointment.
    The sort is shortest appointment on top.
   .Notes
    NAME:  Get-OutlookCalendar
    AUTHOR: ed wilson, msft
    LASTEDIT: 05/10/2011 08:36:42
    KEYWORDS: Microsoft Outlook, Office
    HSG: HSG-05-24-2011
   .Link
     Http://www.ScriptingGuys.com/blog
    #Requires -Version 2.0
    #>

    Add-Type -AssemblyName "Microsoft.Office.Interop.Outlook" | Out-Null
    $olFolders = "Microsoft.Office.Interop.Outlook.OlDefaultFolders" -as [type]
    $outlook = New-Object -ComObject Outlook.Application
    $namespace = $outlook.GetNameSpace("MAPI")
    $folder = $namespace.getDefaultFolder($olFolders::olFolderCalendar)
    $folder.items |
        Select-Object -Property Subject,Start,Duration,Location
}
函数Get OutlookCalendar{
添加类型-AssemblyName“Microsoft.Office.Interop.Outlook”|输出Null
$olFolders=“Microsoft.Office.Interop.Outlook.OlDefaultFolders”-作为[类型]
$outlook=新对象-ComObject outlook.Application
$namespace=$outlook.GetNameSpace(“MAPI”)
$folder=$namespace.getDefaultFolder($olFolders::olFolderCalendar)
$folder.items|
选择对象-属性主题、开始、持续时间、位置
}
我将作者字段视为该脚本的接触点,因为它是编写并理解该脚本的人。在列出原始作者不再有意义之前,是否有一个一般的经验法则来确定脚本被更改了多少?还是他们总是作者而你是编辑


对于后者,用什么合适的方式来表示?您是否在“编者”下添加了一行,并更改了最后一个编辑标签?如何准确地记录您的贡献?是否有记录在案的最佳实践?

假设您被允许将代码用于您打算使用的目的,并且遵守所有/任何法律和限制

你必须为自己和目标受众弄清楚这一点。如果是为了某个你在公司作为系统管理员运行的东西,谁在乎呢?你相信自己和消息来源,不管谁是作者,谁是编辑

对于分发给客户/全世界的东西,如果有人有支持问题,你可能应该成为主要联系人,因为它在你分发的环境中如何工作很重要

关于作者与编辑,这是一个相当有限的观点。想一想Linux内核——Linus Torvalds是最初的作者,但是有很多人对此做出了贡献


(我投票决定这样做,因为这确实是一个编程问题。)

我通常以自己为作者,包括我(工作)的联系信息,以了解评论是如何供内部使用的,我将是阅读评论的任何人最有用的联系点


我通常还会在其中放置一个“改编自”字段或部分,列出我从何处以及从何处获取任何代码片段。这与剽窃无关(这些人在网上免费提供他们的代码,他们希望人们能够复制),而更多的是能够在需要时再次找到资源。我的老板甚至一点都不在乎剧本的“功劳”——我可以从头开始写剧本,也可以复制整个剧本,只要它有效。。。我怀疑大多数人也是如此。

好吧,这不是一个很好的SF问题,尽管我主要是为了一个最佳实践而拍摄的,有文件记载说这是标准。。。我已经更新了我的问题,以反映我正在寻找的更具体、非基于意见的回答。几乎每次我从.net获取代码时,我都会在顶部放一个带原始作者姓名的链接的简介。然后我会快速描述一下我改变了什么,如果是出于完全相同的原因的话。