Skip to content
Trang chủ » Title: Powershell: Unleashing The Power Of Automation

Title: Powershell: Unleashing The Power Of Automation

Eredaze - Not Like That (Lyrics)

Powershell Where Not Like

PowerShell: Empowering Your Command-Line Experience

PowerShell is a powerful scripting language and command-line shell developed by Microsoft. It allows users to automate tasks and manage configurations, providing a diverse range of benefits and capabilities. In this article, we will explore the advantages of PowerShell, discuss its comparisons with other scripting languages, and address common challenges and limitations. We will also delve into strategies for overcoming PowerShell resistance and provide a comprehensive FAQ section, covering topics such as PowerShell notlike, where-object not like, not equal, multiple values, case-sensitive queries, and more.

Benefits and Capabilities of PowerShell

PowerShell offers a plethora of benefits that make it a valuable tool for system administrators, developers, and IT professionals. Let’s delve into some of its key advantages:

1. Automation Potential: PowerShell allows users to automate repetitive tasks, reducing the time and effort required for manual execution. It offers features like scripting, pipelining, and batch processing, providing an efficient way to handle complex tasks.

2. Wide Support: PowerShell integrates smoothly with various Microsoft products like Windows, Active Directory, Exchange Server, SharePoint, and SQL Server. It also supports third-party applications, allowing seamless management of diverse systems and environments.

3. Rich Command-Line Environment: PowerShell provides a rich command-line environment with powerful capabilities. It supports various commandlets, which are pre-built commands that allow users to perform specific operations quickly. This extensive library of commandlets enhances productivity and simplifies complex tasks.

4. Integration with .NET Framework: PowerShell leverages the .NET Framework, offering a wide range of functionalities and access to numerous .NET objects and classes. This integration expands PowerShell’s capabilities, making it a versatile tool for a broad range of tasks.

Command-Line Interface vs. Graphical User Interface

While graphical user interfaces (GUIs) have become popular due to their ease of use, PowerShell’s command-line interface (CLI) offers unique advantages for system administrators and developers. Here’s a comparison between the two:

1. Efficiency: CLI-based tools like PowerShell eliminate the need for navigating through multiple windows and menus. With a concise command, you can perform multiple operations in a streamlined manner, making it faster and more efficient than GUI-based alternatives.

2. Reproducibility: CLI commands can be repeated consistently, allowing for better reproducibility and reducing the likelihood of human error. By creating scripts, users can easily repeat complex operations and share them with others, ensuring consistency and accuracy.

3. Scalability: CLI tools excel in managing large-scale environments as they can handle bulk operations through scripts and automation. With PowerShell, you can easily manage configurations, administer multiple servers, and perform actions across numerous systems simultaneously.

Common Challenges and Limitations of PowerShell

While PowerShell offers numerous advantages, it does come with a set of challenges and limitations. Understanding these can help users make informed decisions and mitigate potential issues. Here are a few common challenges you might encounter:

1. Learning Curve: PowerShell has a learning curve, especially for users who are new to scripting or command-line interfaces. It requires an understanding of programming concepts and becoming familiar with its syntax and features. Fortunately, the vibrant PowerShell community and extensive documentation provide ample resources to overcome this challenge.

2. Complexity: PowerShell’s versatility and vast feature set may overwhelm beginners. It requires deep knowledge to utilize its full potential effectively. However, this complexity can be gradually overcome through practice, experimentation, and learning from community resources.

3. Platform Limitations: PowerShell is primarily designed for Windows platforms, limiting its use on other operating systems. However, Microsoft has developed PowerShell Core, which is a cross-platform version that extends PowerShell’s reach to Linux and macOS.

Comparisons with Other Scripting Languages

When evaluating PowerShell, it’s essential to understand how it compares to other scripting languages commonly used for automation and administrative tasks. Let’s take a brief look at comparisons with some popular scripting languages:

1. PowerShell vs. Bash: While Bash is the default shell in most Unix-based systems, PowerShell’s main focus is on Windows environments. PowerShell boasts a comprehensive integration with Microsoft products, while Bash shines in shell scripting and compatibility with other Unix tools.

2. PowerShell vs. Python: Python is a versatile, cross-platform scripting language widely used for automation. PowerShell, although mainly focused on Windows, offers better integration with Active Directory, SQL Server, and other Microsoft products. Python’s extensive libraries and cross-platform capabilities make it a popular choice for general-purpose scripting.

PowerShell Version Compatibility and Updates

Microsoft regularly releases new versions of PowerShell, introducing new features, bug fixes, and improvements. It’s essential to consider compatibility and update your PowerShell installations accordingly. The following are some key versions of PowerShell:

1. PowerShell 5.1: This version ships with Windows 10, Windows Server 2016, and older Windows versions. It introduces advanced scripting capabilities, enhanced security features, and Desired State Configuration (DSC).

2. PowerShell 7.x: PowerShell 7 is the cross-platform version that runs on Windows, Linux, and macOS. It offers improved performance, compatibility, and a unified scripting experience across platforms. PowerShell 7.x is an open-source project and benefits from community contributions.

Strategies for Overcoming PowerShell Resistance

Implementing any new technology or tool can face resistance. If you encounter resistance when introducing PowerShell into your organization, consider the following strategies to overcome it:

1. Education and Training: Provide training and resources to help users understand PowerShell and its benefits. Offer demonstrations, workshops, and documentation to gradually familiarize them with PowerShell’s features, syntax, and capabilities.

2. Bridge the Gap: Identify tasks that can be more efficiently accomplished using PowerShell and showcase the benefits to stakeholders. Demonstrating the time saved, improved accuracy, and scalability of PowerShell can help overcome resistance.

3. Start Small and Grow: Begin by automating small, repetitive tasks that have a significant impact on productivity. By showcasing the immediate benefits and encouraging user involvement, you can gradually expand the adoption of PowerShell for more complex scenarios.

FAQs

1. How can I use the “notlike” operator in PowerShell?

In PowerShell, the “notlike” operator allows you to filter results that do not match a given pattern. For example, to find all files not ending with “.txt” in a folder, you can use the following command:

“`powershell
Get-ChildItem -Path C:\SomeFolder | Where-Object { $_.Name -notlike “*.txt” }
“`

2. How do I perform a case-sensitive “notlike” query in PowerShell?

By default, PowerShell’s string comparisons are case-insensitive. If you want a case-sensitive “notlike” query, you can use the “-clike” or “-cnotlike” operators instead. These operators perform case-sensitive comparisons. Here’s an example:

“`powershell
Get-ChildItem -Path C:\SomeFolder | Where-Object { $_.Name -cnotlike “*.TXT” }
“`

3. Can I use multiple values in a “notlike” query?

Yes, you can use multiple values in a “notlike” query by enclosing them in parentheses and separating them with a comma. For instance, to filter out file names not containing both “abc” and “xyz,” you can use the following command:

“`powershell
Get-ChildItem | Where-Object { $_.Name -notlike “*abc*” -and $_.Name -notlike “*xyz*” }
“`

4. How can I perform a “not equal” comparison in PowerShell?

PowerShell uses the “-ne” operator for “not equal” comparisons. For example, to filter files that are not read-only, you can use the following command:

“`powershell
Get-ChildItem | Where-Object { -not $_.IsReadOnly }
“`

5. How do I handle an array in a “notlike” query?

To handle an array in a “notlike” query, you can use the “-notmatch” operator combined with the “-join” operator. The “-join” operator concatenates array elements into a single string. Here’s an example:

“`powershell
$blacklist = @(“*.txt”, “*.csv”, “*.log”)
$blacklistString = ($blacklist -join “|”)
Get-ChildItem | Where-Object { $_.Name -notmatch $blacklistString }
“`

Conclusion

PowerShell is a versatile and powerful tool for automating tasks, managing configurations, and improving efficiency in Windows environments. Its extensive capabilities, rich command-line interface, and tight integration with various Microsoft products make it an invaluable asset for system administrators, developers, and IT professionals. By understanding its benefits, comparing it with other scripting languages, and overcoming common challenges, you can harness the full potential of PowerShell and take your automation and scripting efforts to new heights.

Eredaze – Not Like That (Lyrics)

Keywords searched by users: powershell where not like powershell notlike not working, powershell where-object not like, powershell not equal, Powershell not like multiple values, powershell notlike case-sensitive, powershell notlike or, powershell not match, powershell notlike array

Categories: Top 56 Powershell Where Not Like

See more here: nhanvietluanvan.com

Powershell Notlike Not Working

PowerShell NotLike Not Working: A Comprehensive Guide

PowerShell is a powerful command-line shell and scripting language designed specifically for task automation and configuration management. One of its core features is the ability to apply filters to objects, allowing users to refine their searches and get precise results. The NotLike operator is commonly used to exclude specific items from a search query. However, users may occasionally encounter issues where NotLike does not function as expected. In this article, we will explore the various causes and possible solutions for PowerShell NotLike not working.

Understanding PowerShell NotLike and Its Purpose

The NotLike operator is used in PowerShell to filter objects based on a specific pattern of characters. It is often used in conjunction with other operators such as Like, Match, and -Not. The NotLike operator operates on strings and wildcards to exclude items that match the specified pattern. For example, the following command filters out any process names that start with the letter “C”:

“`PowerShell
Get-Process | Where-Object {$_.Name -NotLike “C*”}
“`

This command will retrieve all running processes and exclude any process whose name starts with “C.”

Common Causes for PowerShell NotLike Not Working

While PowerShell’s NotLike operator is generally reliable, there are a few common causes for it to fail. Let’s examine some of these potential triggers:

1. Incorrect Syntax: The most common reason for NotLike not working is typographical errors or incorrect syntax. Even a simple mistake can cause unexpected results. Double-check that the syntax of the NotLike command is accurate, and ensure proper placement of quotes, wildcards, and escape characters.

2. Case Sensitivity: PowerShell is case-insensitive by default. However, the NotLike operator is case-insensitive when used on strings that contain only letters. If your search criteria include characters apart from letters, NotLike will become case-sensitive. To eliminate this issue, consider converting the input string to lowercase or uppercase before applying the NotLike operator.

3. Wildcard Usage: Wildcards play a crucial role when utilizing NotLike operator. Using wildcards incorrectly or failing to use them altogether can lead to undesired outcomes. Ensure that the wildcards (* or ?) are properly placed within the search string for accurate matching.

4. Object Selection: Another possible reason for NotLike not working is when applying it to the wrong object. If the NotLike operator is being used on the incorrect property or object, it may produce incorrect or unexpected results. Review the object properties and verify that the correct one is being used in the NotLike expression.

5. Data Type Mismatch: PowerShell handles data types differently, and this can cause issues with the NotLike operator. It is essential to ensure that the objects being compared have compatible data types. For example, comparing strings to arrays or integers may lead to unexpected results. Convert the objects to a compatible data type before using the NotLike operator.

FAQs

Q1: Why does PowerShell NotLike not exclude items that match the pattern?
A: Double-check the syntax and ensure that wildcards are used correctly. Confirm the case sensitivity of the search criteria and review the object properties you are applying the NotLike operator to.

Q2: How can I make NotLike case-sensitive?
A: By default, NotLike is case-insensitive for letters only. For case-sensitive comparisons, convert the input string to uppercase or lowercase before applying the NotLike operator.

Q3: Why is NotLike not working with the ‘*’ wildcard character?
A: Ensure that you are using the ‘*’ wildcard character correctly. ‘*’ represents zero or more characters, while ‘?’ represents a single character. Use appropriate wildcard placement within the search string to achieve the desired results.

Q4: I’m getting unexpected results when comparing different data types. What should I do?
A: PowerShell handles data types differently. Convert the objects to compatible data types before using the NotLike operator to prevent unexpected outcomes. These conversions can be achieved using casting or conversion functions such as [string] or [int].

Q5: Are there any alternative methods to achieve the same result as NotLike?
A: Yes, PowerShell offers alternative operators such as -NotMatch and -NotContains, which can be used to achieve similar results depending on the context and requirements of the task.

In conclusion, while PowerShell’s NotLike operator is a powerful tool for filtering objects, it can sometimes exhibit unexpected behavior. By carefully reviewing syntax, considering case sensitivity, using appropriate wildcard placement, verifying object selection, and addressing potential data type mismatches, users can troubleshoot and resolve issues that cause PowerShell NotLike not to work as expected.

Powershell Where-Object Not Like

PowerShell Where-Object Not Like: A Comprehensive Guide with FAQs

PowerShell, with its extensive command-line interface and scripting capabilities, is a powerful tool for automating tasks and managing Windows-based systems efficiently. One of the most important cmdlets in PowerShell is “Where-Object”, which allows users to filter data in a flexible manner. In this article, we will focus on a specific aspect of the Where-Object cmdlet – “Not Like”. We will explore how it works, its syntax, use cases, and also address some frequently asked questions related to this topic.

Understanding Where-Object Not Like:
The “Where-Object” cmdlet in PowerShell is used to filter objects from a collection based on a specific condition. In simple terms, it helps in selecting only the objects that meet certain criteria. The “Not Like” operator, denoted by “-notlike”, is used when we want to exclude objects that match a particular pattern or pattern list.

Syntax and Usage:
The syntax of the “Where-Object” cmdlet with “Not Like” operator is as follows:

“`PowerShell
Where-Object { $_.Property -notlike “Pattern” }
“`

Here, “Property” represents the property of the object being checked, and “Pattern” is the string or regular expression defining the condition.

The “Not Like” operator supports various wildcard characters to define patterns, such as:

– “*” (asterisk): Matches zero or more characters.
– “?” (question mark): Matches exactly one character.
– “[]” (brackets): Matches any single character within the specified range or set.
– “[!]” (exclamation within brackets): Matches any single character not within the specified range or set.

Let’s dive deeper into the use cases for “Where-Object” with “Not Like” to better understand its functionality.

Use Cases:
1. Filtering files: Suppose we have a folder with multiple files and we want to filter out all files with a “.txt” extension. We can use the following PowerShell command:

“`PowerShell
Get-ChildItem | Where-Object { $_.Name -notlike “*.txt” }
“`

This command retrieves all files using Get-ChildItem and filters out those whose names don’t match the “*.txt” pattern. This allows us to focus only on the desired files for further processing.

2. Excluding certain properties: In PowerShell, objects often have various properties associated with them. You may want to exclude specific properties from your output. For example, let’s assume we have a collection of processes and we want to exclude all processes with the name “chrome.exe”. We can use the following command:

“`PowerShell
Get-Process | Where-Object { $_.Name -notlike “chrome.exe” }
“`

This command will retrieve all processes using Get-Process and exclude those whose names match the “chrome.exe” pattern. This is useful when you want to narrow down your output by excluding certain properties.

FAQs

Q1. How is “Not Like” different from “Not Match” operator in PowerShell?
A1. The “Not Like” operator, represented by “-notlike”, is focused on wildcard pattern matching. It allows you to filter objects based on partial matches using wildcard characters. On the other hand, the “Not Match” operator, represented by “-notmatch”, uses regular expressions for pattern matching.

Q2. Can I use multiple “Not Like” conditions with the “Where-Object” cmdlet?
A2. Yes, you can use multiple “Not Like” conditions using logical operators, such as “-and” or “-or”. For example:

“`PowerShell
Get-ChildItem | Where-Object { $_.Name -notlike “*.txt” -and $_.Name -notlike “*.pdf” }
“`

This command will exclude files with both “.txt” and “.pdf” extensions from the output.

Q3. How do I negate the “Not Like” condition?
A3. If you want the condition to negate, you can use the “-not” operator before “-notlike”. For instance:

“`PowerShell
Get-ChildItem | Where-Object { -not ( $_.Name -notlike “*.txt” ) }
“`

This command will only include files with the “.txt” extension, essentially negating the “Not Like” condition.

Q4. Are there any performance considerations while using “Not Like”?
A4. When filtering large datasets or complex objects, it is advisable to carefully optimize your conditions for better performance. Using more specific patterns and considering alternative filtering options like “Where-Object -FilterScript” can help improve performance.

Conclusion:
The “Where-Object” cmdlet in PowerShell provides a flexible and powerful approach to filter objects from collections. The “Not Like” operator further enhances this capability by allowing exclusion based on specific patterns. By leveraging this command, you can streamline your script’s logic and efficiently manage data.

In this article, we covered the syntax, use cases, and FAQs related to “Where-Object Not Like” in PowerShell. Understanding the nuances of this command unlocks endless possibilities for automating tasks, managing systems, and enhancing productivity.

Powershell Not Equal

PowerShell Not Equal: A Guide to Performing Comparison in PowerShell

PowerShell, a powerful automation and scripting language developed by Microsoft, includes a range of comparison operators to simplify the process of evaluating conditions and making decisions. One such operator is the “not equal” operator, represented by -ne in PowerShell. In this article, we will explore how the not equal operator works in PowerShell, its role in conditional operations, and provide practical examples to showcase its usage. So, let’s dive in!

Understanding the Not Equal (-ne) Operator:
The not equal operator (-ne) in PowerShell is primarily used to determine if two values are not equal. It compares the values on both sides and returns “True” if they are not identical, and “False” if they are equal.

The syntax for the not equal operator is:
“`PowerShell
value1 -ne value2
“`

It is important to note that this operator performs a case-insensitive comparison for strings by default. However, it performs a case-sensitive comparison for other data types such as integers, floats, and booleans.

Applying the Not Equal Operator in PowerShell:
The not equal operator is commonly used within conditional statements, loops, and filter operations in PowerShell scripts. Let’s explore some scenarios where this operator can be actively employed:

1. Conditional Statements:
The not equal operator is often employed when executing conditional statements to determine if a condition is met. For instance, consider the following code snippet that checks if a variable is not equal to a specific value:
“`PowerShell
$variable = “Hello”
if ($variable -ne “Goodbye”) {
Write-Host “Variable is not equal to Goodbye.”
}
“`
In this example, if the value of `$variable` is anything other than “Goodbye,” the script block inside the if statement will be executed.

2. Filtering Data:
The not equal operator is widely used when filtering data in PowerShell. For instance, if you have a list of users and you want to extract all users with roles other than “Administrator,” you can use the following code:
“`PowerShell
$users = Get-ADUser -Filter *
$filteredUsers = $users | Where-Object { $_.Role -ne “Administrator” }
“`
Here, the `Where-Object` cmdlet is used to filter out all users whose role is not “Administrator,” storing the filtered result in the `$filteredUsers` variable.

Frequently Asked Questions (FAQs):

Q1: Can I use the not equal operator to compare arrays or collections?
Yes, the not equal operator can be used to compare arrays or collections. It compares the values at corresponding indexes and returns “True” if they are different.

Q2: Does PowerShell support negating the not equal operator?
Yes, you can negate the result of the not equal operator by using the logical not operator (!) in front of the entire expression:
“`PowerShell
!($variable -ne “Goodbye”)
“`
This will return “True” when `$variable` is equal to “Goodbye.”

Q3: Are there any other comparison operators in PowerShell?
Yes, PowerShell offers various other comparison operators such as -eq (equal), -lt (less than), -gt (greater than), -le (less than or equal to), and -ge (greater than or equal to), among others.

Q4: Can I use the not equal operator with other data types, such as numbers or booleans?
Yes, the not equal operator can be used with a variety of data types, including numbers, booleans, and strings. It compares the values based on their respective types.

Q5: How does the not equal operator handle null or empty values?
When comparing null or empty values using the not equal operator, it returns “False” as they are considered the same.

To conclude, the PowerShell not equal operator provides a simple and efficient way to compare values and make decisions within your scripts. Whether you need to perform conditional checks, filter data, or compare different data types, the not equal operator proves to be a versatile tool. So, go ahead and leverage its power to enhance your PowerShell scripts today!

Images related to the topic powershell where not like

Eredaze - Not Like That (Lyrics)
Eredaze – Not Like That (Lyrics)

Found 47 images related to powershell where not like theme

Powershell Not Like | A Quick Glance Of Powershell Not Like
Powershell Not Like | A Quick Glance Of Powershell Not Like
How To Use Powershell Where-Object To Filter All The Things
How To Use Powershell Where-Object To Filter All The Things
Jumpstart Your Game With Powershell Like Operator (And More)
Jumpstart Your Game With Powershell Like Operator (And More)
Powershell Regular Expressions Tutorial | Pluralsight
Powershell Regular Expressions Tutorial | Pluralsight
How To Use Powershell Where-Object To Filter All The Things
How To Use Powershell Where-Object To Filter All The Things
How To Use Powershell
How To Use Powershell “Contains” – A Quick Guide! – Sharepoint Diary
How To Fix 'The Term Is Not Recognized As The Name Of A Cmdlet' In Windows  Powershell
How To Fix ‘The Term Is Not Recognized As The Name Of A Cmdlet’ In Windows Powershell
Fix For Powershell Script Cannot Be Loaded Because Running Scripts Is  Disabled On This System Error - Sharepoint Diary
Fix For Powershell Script Cannot Be Loaded Because Running Scripts Is Disabled On This System Error – Sharepoint Diary
In Powershell Get-Childitem -Exclude Is Not Working With -Recurce Parameter  - Stack Overflow
In Powershell Get-Childitem -Exclude Is Not Working With -Recurce Parameter – Stack Overflow
Giải Quyết Typeerror Python: A Byte-Like Object Is Required, Not 'Str'
Giải Quyết Typeerror Python: A Byte-Like Object Is Required, Not ‘Str’
How To Use If Statements In Powershell | Pdq
How To Use If Statements In Powershell | Pdq
When Running A Command In Powershell How Can I Prepend A Date/Time For All  Output On Stdout/Stderr? - Stack Overflow
When Running A Command In Powershell How Can I Prepend A Date/Time For All Output On Stdout/Stderr? – Stack Overflow
How To Fix 'The Term Is Not Recognized As The Name Of A Cmdlet' In Windows
How To Fix ‘The Term Is Not Recognized As The Name Of A Cmdlet’ In Windows
Managing Windows Server Roles & Features With Powershell | Windows Os Hub
Managing Windows Server Roles & Features With Powershell | Windows Os Hub
Powershell: Search For String Or Grep For Powershell - Thomas Maurer
Powershell: Search For String Or Grep For Powershell – Thomas Maurer
Powershell - Create Directory If Not Exists - Shellgeek
Powershell – Create Directory If Not Exists – Shellgeek
Windows Powershell Commands Cheat Sheet (Pdf), Tips & Lists
Windows Powershell Commands Cheat Sheet (Pdf), Tips & Lists
How To Fix 'The Term Is Not Recognized As The Name Of A Cmdlet' In Windows
How To Fix ‘The Term Is Not Recognized As The Name Of A Cmdlet’ In Windows
Avoid Using Escape Sequences Tricks When Term=Dumb · Issue #14594 ·  Powershell/Powershell · Github
Avoid Using Escape Sequences Tricks When Term=Dumb · Issue #14594 · Powershell/Powershell · Github
Cmd - Powershell The Term Is Not Recognized As Cmdlet Function Script File  Or Operable Program - Stack Overflow
Cmd – Powershell The Term Is Not Recognized As Cmdlet Function Script File Or Operable Program – Stack Overflow
How To Use If Statements In Powershell | Pdq
How To Use If Statements In Powershell | Pdq
Windows Powershell Commands Cheat Sheet (Pdf), Tips & Lists
Windows Powershell Commands Cheat Sheet (Pdf), Tips & Lists
Search Your Contacts Using Powershell
Search Your Contacts Using Powershell
Windows Powershell Scripting Tutorial For Beginners
Windows Powershell Scripting Tutorial For Beginners
Powershell Get-Appxpackage Access Denied, Not Recognized Or Not Working Fix  - Youtube
Powershell Get-Appxpackage Access Denied, Not Recognized Or Not Working Fix – Youtube
How To Install Powershell Modules: A Step By Step Guide
How To Install Powershell Modules: A Step By Step Guide
How To Use Where-Object In Powershell To Filter Everything | Pdq
How To Use Where-Object In Powershell To Filter Everything | Pdq
Powershell - Script Is Not Digitally Signed Or Running Not Enabled
Powershell – Script Is Not Digitally Signed Or Running Not Enabled
My Ultimate Powershell Prompt With Oh My Posh And The Windows Terminal -  Scott Hanselman'S Blog
My Ultimate Powershell Prompt With Oh My Posh And The Windows Terminal – Scott Hanselman’S Blog
Removing Objects From Arrays In Powershell - Sapien Blog
Removing Objects From Arrays In Powershell – Sapien Blog
Web Scraping With Powershell: The Ultimate Guide | Oxylabs
Web Scraping With Powershell: The Ultimate Guide | Oxylabs
Powershell -
Powershell – “Get-Package *Notepad* | Uninstall-Package -Force” Not Working – Stack Overflow
Does -Notlike Work Different Than -Like? : R/Powershell
Does -Notlike Work Different Than -Like? : R/Powershell

Article link: powershell where not like.

Learn more about the topic powershell where not like.

See more: nhanvietluanvan.com/luat-hoc

Leave a Reply

Your email address will not be published. Required fields are marked *