old_contents: #-------------------------------------------------------------------------------------------------------
  # Copyright (C) Microsoft. All rights reserved.
  # Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  #-------------------------------------------------------------------------------------------------------
  
  # Python 2.7 and 3.x compatibility for easier testing regardless of python installation
  from __future__ import print_function
  
  import sys
  import os.path
  import re
  
  copyright_lines = [
      r'-------------------------------------------------------------------------------------------------------',
      r' Copyright \(C\) Microsoft( Corporation and contributors)?\. All rights reserved\.',
      r' Licensed under the MIT license\. See LICENSE\.txt file in the project root for full license information\.',
      r'.*' # the above should always be followed by at least one other line, so make sure that line is present
  ]
  
  regexes = []
  for line in copyright_lines:
      pattern = '^.{1,5}%s$' % line
      regexes.append(re.compile(pattern))
  
  if len(sys.argv) < 2:
      print("Requires passing a filename as an argument.")
      exit(1)
  
  file_name = sys.argv[1]
  if not os.path.isfile(file_name):
      print("File does not exist:", file_name, "(not necessarily an error)")
      exit(0)
  
  def report_incorrect(file_name, pairs):
      # found a problem so report the problem to the caller and exit
      print(file_name, "... does not contain a correct Microsoft copyright notice.\n")
      # print the relevant lines to help the reader find the problem
      for (_, line) in pairs:
          print("    ", line, end="")
      print()
  
  linecount = 0
  pairs = []
  with open(file_name, 'r') as sourcefile:
      pairs += zip(regexes, sourcefile)
  
  for (regex, line) in pairs:
      linecount += 1
      line = line.rstrip()
      matches = regex.match(line)
      if not matches:
          report_incorrect(file_name, pairs)
          exit(1)
  
  if linecount == 0:
      # the file was empty (e.g. dummy.js) so no problem
      exit(0)
  elif linecount != len(regexes):
      report_incorrect(file_name, pairs)
      exit(1)
  
new_contents: #-------------------------------------------------------------------------------------------------------
  # Copyright (C) Microsoft. All rights reserved.
  # Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  #-------------------------------------------------------------------------------------------------------
  
  # Python 2.7 and 3.x compatibility for easier testing regardless of python installation
  from __future__ import print_function
  
  import sys
  import os.path
  import re
  
  copyright_lines = [
      r'-------------------------------------------------------------------------------------------------------',
      r' Copyright \(C\) Microsoft( Corporation and contributors)?\. All rights reserved\.',
      r' Licensed under the MIT license\. See LICENSE\.txt file in the project root for full license information\.',
      r'.*' # the above should always be followed by at least one other line, so make sure that line is present
  ]
  
  regexes = []
  for line in copyright_lines:
      pattern = '^.{1,5}%s$' % line
      regexes.append(re.compile(pattern))
  
  if len(sys.argv) < 2:
      print("Requires passing a filename as an argument.")
      exit(1)
  
  file_name = sys.argv[1]
  if not os.path.isfile(file_name):
      print("File does not exist:", file_name, "(not necessarily an error)")
      exit(0)
  
  def report_incorrect(file_name, pairs):
      # found a problem so report the problem to the caller and exit
      print(file_name, "... does not contain a correct Microsoft copyright notice.\n")
      # print the relevant lines to help the reader find the problem
      for (_, line) in pairs:
          print("    ", line, end="")
      print()
  
  linecount = 0
  pairs = []
  with open(file_name, 'r') as sourcefile:
      hashbang = sourcefile.readline()
      if not hashbang.startswith("#!"):
          sourcefile.seek(0)
      pairs += zip(regexes, sourcefile)
  
  for (regex, line) in pairs:
      linecount += 1
      line = line.rstrip()
      matches = regex.match(line)
      if not matches:
          report_incorrect(file_name, pairs)
          exit(1)
  
  if linecount == 0:
      # the file was empty (e.g. dummy.js) so no problem
      exit(0)
  elif linecount != len(regexes):
      report_incorrect(file_name, pairs)
      exit(1)
  
subject: Update check_copyright.py to ignore #! lines in scripts.