Difference between revisions of "Windows PowerShell 1.0 File Handling"

From Techotopia
Jump to: navigation, search
(Changing File Properties =)
(Changing File Properties)
Line 58: Line 58:
 
</tr>
 
</tr>
 
<tr>
 
<tr>
<td>ReadOnly    <td>The file is read-only.</td>
+
<td>ReadOnly    <td>File is read-only.</td>
 
</tr>
 
</tr>
  
 
<tr  bgcolor="#e9e9e6">
 
<tr  bgcolor="#e9e9e6">
<td>Hidden      <td>The file is hidden, and thus is not included in an ordinary directory listing.</td>
+
<td>Hidden      <td>File is hidden, and thus is not included in an ordinary directory listing.</td>
 
</tr>
 
</tr>
  
 
<tr>
 
<tr>
<td>System      <td>The file is a system file. The file is part of the operating system or is used exclusively by the operating system.</td>
+
<td>System      <td>File is a system file. The file is part of the operating system or is used exclusively by the operating system.</td>
 
</tr>
 
</tr>
  
 
<tr  bgcolor="#e9e9e6">
 
<tr  bgcolor="#e9e9e6">
<td>Archive    <td>The file's archive status. Applications use this attribute to mark files for backup or removal.</td>
+
<td>Archive    <td>File archive status. Used to mark files for backup or removal.</td>
 
</tr>
 
</tr>
  
 
<tr>
 
<tr>
<td> Normal    <td>The file is normal and has no other attributes set. This attribute is valid only if used alone.</td>
+
<td> Normal    <td>The file is normal and has no other attributes set. Cannot be used in conjunction with other attributes.</td>
 
</tr>
 
</tr>
 
</table>
 
</table>

Revision as of 15:57, 8 December 2008

The previous chapter of Windows PowerShell 1.0 Essentials covered the basics of working with file systems using Windows PowerShell. This chapter is designed to provide information of how to create and manipulate individual files using the PowerShell environment.

Getting File Properties

Basic information about a particular file is available through the Get-Item and Get-ItemProperty cmdlets:

PS C:\tmp> get-item test.txt


    Directory: Microsoft.PowerShell.Core\FileSystem::C:\tmp


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---         12/5/2008  12:12 PM         34 test.txt

Both of the above commands return a FileInfo object, from which specific file attributes may subsequently be extracted. For example, to obtain just the last write time:

PS C:\tmp> $myfile.lastaccesstime

Monday, December 08, 2008 6:59:48 AM

In fact, the FileInfo object provides a vast number of methods and properties, a full listing of which can be viewed using the get-member cmdlet:

PS C:\tmp> get-item test.txt | get-member

Changing File Properties

The properties of a file are changed in Windows PowerShell using the Set-ItemProperty cmdlet together with the appropriate .NET [System.IO.FileAttributes] static member. For example, to set the ReadOnly attribute on a file:

PS C:\tmp> set-itemproperty test.txt -name attributes -value ([System.IO.FileAttributes]::ReadOnly)

Multiple properties may be set in a single command, providing that all the properties are joined using bxor operations. In the following example, the Hidden and ReadOnly attributes are set in a single operation:

PS C:\tmp> set-itemproperty test.txt -name attributes -value ([System.IO.FileAttributes]::ReadOnly -bxor 
[System.IO.FileAttributes]::Hidden)

A full list of file attributes provided through [System.IO.FileAttributes] is outlined in the following table:

Member

Description

ReadOnly File is read-only.
Hidden File is hidden, and thus is not included in an ordinary directory listing.
System File is a system file. The file is part of the operating system or is used exclusively by the operating system.
Archive File archive status. Used to mark files for backup or removal.
Normal The file is normal and has no other attributes set. Cannot be used in conjunction with other attributes.