PowerShell_零基礎自學課程_7_Powershell中重定向機制、目錄和文件管理


  星期四和星期五晚上和同事一起到外面燒烤,然后出去喝酒;突然感到自己很孤獨,不知道為什么,我不知道為什么這些人這么年輕怎么就么有自己的

想法,已經做好了混吃等死的地步了;說實話,目前的大型國有企業就是這么一個地方,混吃等死,要不就是削尖腦袋那種刻苦鑽營,感覺生活真的很無聊,

現在明白了一將成名萬古枯這句話的真正含義。

  同時突然發現,現在的時間根本不是自己的時間,不知道各位大俠們有沒有這種感受.....................

  算了,不牢騷了,還是說說今天的內容吧。

一、輸出重定向

1、1 兼容cmd重定向

  有過console 模式管理經驗的人都知道,幾乎所有的console都支持重定向的概念(我目前還沒有見過不支持重定向功能的console);例如在cmd中

可以利用下面的形式實現重定向。

tasklist > process.txt     #將系統進程信息保存到process.txt中

systeminfo >>process.txt 

  那么在PS中是否也可以這樣進行重定向呢? 這個就是可以有。

Exp:在PS中通過 > 來實現輸出重定向

PS C:\Users\vol_20120330> get-process > process.txt

  可以看到執行過程沒有報錯,那么我們查看一下是否真的生成了process.txt文件

PS C:\Users\vol_20120330> ls


    目錄: C:\Users\vol_20120330


Mode                LastWriteTime     Length Name                              
----                -------------     ------ ----                              
........                                              
-a---         2012/5/12     16:41      10374 process.txt                       
.........  

  如上所示,確實生成了process.txt文件。同樣我們可以利用 >> appended文件內容。

Exp:利用 >> 追加信息

____________________________________________________________________________
PS C:\Users\vol_20120330> get-process >> process.txt

____________________________________________________________________________
PS C:\Users\vol_20120330> ls


    目錄: C:\Users\vol_20120330


Mode                LastWriteTime     Length Name                              
----                -------------     ------ ----                              
 .............                       
-a---         2012/5/12     16:44      20422 process.txt                                             
..................
____________________________________________________________________________

  可以看到,文件的內容增加了,這可以通過文件的length屬性增大得知。

1、2 PS新增的特性 out-* cmdlet集重定向

  PS中的out重定向命令集,具有兩個特點:

                  1、  這些out-* cmdlets 的輸出不是對象,而是文本格式的數據,這是因為out-* cmdlet要將數據傳輸到接受文本信息的系統組件

                  2、  這些out-* cmdlet 將數據從PS中發送到其他位置,同時在這些命令執行完畢的時候,會將在管道中傳輸的對象刪除

  下面我看來看第二個特性。

Exp:  利用Format-wide 命令來驗證out-* cmdlet的第二個特性

PS C:\Users\vol_20120330> get-childitem | out-host  |format-wide -column 2


    目錄: C:\Users\vol_20120330


Mode                LastWriteTime     Length Name                               
----                -------------     ------ ----                                                     
d-r--         2012/3/30     18:27            Searches                           
d-r--         2012/3/30     18:27            Videos                             
-a---         2012/5/12     16:44      20422 process.txt                        
-a---         2012/4/15     19:14        509 regwizard.log                      
-a---         2012/4/15     19:14       9853 sanct.log  

  原本我們通過get-childitem命令獲取當前目錄下的子目錄傳遞給out-host,然后想利用format-wide -column 命令輸出2列name屬性信息,結果輸出了很多列。

我們變換一下管道傳遞的先后順序則會得到:

PS C:\Users\vol_20120330> get-childitem |format-wide -column 2  | out-host  


    目錄: C:\Users\vol_20120330



[Contacts]                               [Desktop]                              
[Documents]                              [Downloads]                            
[Favorites]                              [Links]                                
[Music]                                  [Pictures]                             
[Saved Games]                            [Searches]                             
[Videos]                                 process.txt                            
regwizard.log                            sanct.log                              

  可以看到,確實是這樣的,out-host命令將在管道中傳輸的對象刪除了。其實質就是當out-* cmdlet執行時,將刪除傳遞給他的對象。

注意:

  所有的out命令均具有第二個特性,需要注意。

1、3 Ps中分頁輸出

  執行某些命令的時候,其輸出信息量大,無法在當前頁面中完整的顯示所有信息,這就需要分頁顯示;在cmd中又more命令,在bash中也有類似的命令。

在PS中通過參數來實現這一功能:  -paging。

Exp: 在PS中利用-paging進行分頁輸出

  如上圖所示,在第一頁輸出的最底下有相關的提示信息。

  同樣利用more函數也可以完成這一功能,因為more函數就一個invoke  out-host -paging的函數。圖下圖所示:

  如上圖所示,在輸出窗口的左下角有一個類似於bash中的提示符號: -more-

1、4 放棄輸出

  在cmd利用重定向可以阻止輸出信息, 例如:dir>nul; 而在PS中需要進行管道傳遞,並且使用專門的cmdlet: out-null。

Exp:  阻止程序輸出

1、5  打印輸出

  我們知道在cmd中如果要調用系統的打印功能,那么需要進行很多的操作才能實現,而在PS中只需一個命令即可實現。

Exp: 利用 out-printer 命令打印輸出信息。

  上圖就是利用:get-process | out-printer  命令打印輸出信息

1、6 重定向輸出到文件

  上面我們說了兼容cmd格式的重定向輸出信息到文件,其實在PS中這可以通過專用的cmdlet完成。

Exp:利用out-file命令將信息輸出到文件。

PS C:\Users\vol_20120330> get-item process.txt
Get-Item : 找不到路徑“C:\Users\vol_20120330\process.txt”,因為該路徑不存在。
所在位置 行:1 字符: 9
+ get-item <<<<  process.txt
    + CategoryInfo          : ObjectNotFound: (C:\Users\vol_20120330\process.tx 
   t:String) [Get-Item], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetIte 
   mCommand
 

_____________________________________________________________________________
PS C:\Users\vol_20120330> get-process | out-file process.txt

_____________________________________________________________________________
PS C:\Users\vol_20120330> get-item process.txt


    目錄: C:\Users\vol_20120330


Mode                LastWriteTime     Length Name                               
----                -------------     ------ ----                               
-a---         2012/5/12     17:25      10346 process.txt                        

  可以看出,上面的   get-process | out-file process.txt 命令確實創建了文件。

  有一點需要注意: out-file命令創建的是Unicode編碼的文件,有時候為了輸出ASCII編碼的文件,我們需要增加-encoding參數, 從而控制輸出的文本編碼格式

Exp:利用encoding參數控制編碼格式

  get-process | out-file  -encoding ascii -filepath .\process.txt

PS C:\Users\vol_20120330> get-process | out-file -encoding ascii -filepath .\process1.txt

_____________________________________________________________________________
PS C:\Users\vol_20120330> get-item process1.txt


    目錄: C:\Users\vol_20120330


Mode                LastWriteTime     Length Name                               
----                -------------     ------ ----                               
-a---         2012/5/12     17:31       5254 process1.txt     

  可以發現文件的大小減少了很多,大約只有前面的一半大小,這也符合unicode編碼是ascii編碼占用空間兩倍的常識。

 

二、PS中的目錄文件管理

  前面的一篇文章我們說了部分在PS中進行文件瀏覽的基本概念,說到了幾個虛擬驅動器的概念。並沒有深入的描述相關的命令,這里我們進一步對這一知識點進行描述。

2.1 管理當前工作路徑/位置

  在日常管理中經常需要對當前的路徑進行查詢和管理;PS提供了四個管理的cmdlet: get-location、set-location、push-location、pop-location。

  get-location: 相當於unix/Linux中的‘pwd’;用於獲取當前的工作路徑

  set-location: 相當於chdir、cd命令,用於改變當前工作路徑

  push-location: 這是PS中新增加的特性, 當用這個命令的時候,PS就會創建一個歷史路徑堆棧,這個堆棧用來存儲push-location的路徑信息, push-location用來將路徑保存

          到歷史路徑堆棧。

  pop-location: 用來將當前工作路徑切換到歷史路徑堆棧的最后一條記錄中的位置,並且刪除最上的一條記錄。

Exp:利用push/pop-loction命令切換工作路徑

PS C:\Users\vol_20120330> push-location -path c:\

_____________________________________________________________________________
PS C:\> get-location

Path                                                                            
----                                                                            
C:\                                                                             



_____________________________________________________________________________
PS C:\> pop-location

_____________________________________________________________________________
PS C:\Users\vol_20120330> get-location

Path                                                                            
----                                                                            
C:\Users\vol_20120330                                                           

  如上所示:  首先用push-location命令保存當前路徑並且將當前工作路徑切換到C:\ ; 接下來用get-location查看是否切換成功; 然后用pop-location命令切回到原先

保存的路徑,並用get-location驗證。

 

2、2  獲取當前系統支持的驅動器信息

  get-psdrive 命令獲取當前系統支持的驅動器。

Exp: 利用get-psdrive獲取當前我的系統上支持的驅動器

PS C:\Users\vol_20120330> get-psdrive

警告: 列“CurrentLocation”無法顯示,已被刪除。

Name           Used (GB)     Free (GB) Provider      Root                       
----           ---------     --------- --------      ----                       
Alias                                  Alias                                    
C                  17.89         11.41 FileSystem    C:\                        
cert                                   Certificate   \                          
D                   7.01         22.29 FileSystem    D:\                        
E                  35.61         22.98 FileSystem    E:\                        
Env                                    Environment                              
F                  26.06         32.54 FileSystem    F:\                        
Function                               Function                                 
G                  14.95         33.88 FileSystem    G:\                        
H                  31.67         17.15 FileSystem    H:\                        
HKCU                                   Registry      HKEY_CURRENT_USER          
HKLM                                   Registry      HKEY_LOCAL_MACHINE         
I                                      FileSystem    I:\                        
K                                      FileSystem    K:\                        
N                                      FileSystem    N:\                        
Variable                               Variable                                 
WSMan                                  WSMan  

  前面簡述過get-psdrive命令的psprovider參數,這里不再進行介紹,同時如果需要獲取相關信息,可以get-help online一下,可以得到比較詳細的信息。

  我們也說過可以利用new-item 命令創建虛擬驅動器;這里我們介紹一個新的命令: new-psdrive。

  new-psdrive常用的參數有: name   用來指定新的驅動器盤符名

                psprovider   用來指定驅動器的提供程序

                root   用來指定新驅動器代表的路徑

Exp: 利用new-psdrive命令創建mydirve: 盤符

PS C:\Users\vol_20120330> new-psdrive -name  mydrive   -psprovider  filesystem  -root $home

警告: 列“CurrentLocation”無法顯示,已被刪除。

Name           Used (GB)     Free (GB) Provider      Root                       
----           ---------     --------- --------      ----                       
mydrive                          11.40 FileSystem    C:\Users\vol_20120330   

  如實例所示,我們創建了一個盤符:mydrive。我們可以進入盤符進行操作:

PS C:\Users\vol_20120330> cd mydrive:\

_____________________________________________________________________________
PS mydrive:\> gl

Path                                                                            
----                                                                            
mydrive:\     

  我們還可以刪除當前添加的盤符,這通過remove-psdrive命令實現,見實例。

Exp: 利用remove-psdrive命令刪除剛添加的驅動器盤符。

PS mydrive:\> remove-psdrive   mydrive
Remove-PSDrive : 無法刪除驅動器“mydrive”,因為它在使用中。
所在位置 行:1 字符: 15
+ remove-psdrive <<<<    mydrive
    + CategoryInfo          : InvalidOperation: (:) [Remove-PSDrive], PSInvalid 
   OperationException
    + FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.Re 
   movePSDriveCommand
 

_____________________________________________________________________________
PS mydrive:\> cd c:\

_____________________________________________________________________________
PS C:\> remove-psdrive   mydrive

_____________________________________________________________________________
PS C:\> cd mydrive:\
Set-Location : 找不到驅動器。名為“mydrive”的驅動器不存在。
所在位置 行:1 字符: 3
+ cd <<<<  mydrive:\
    + CategoryInfo          : ObjectNotFound: (mydrive:String) [Set-Location],  
   DriveNotFoundException
    + FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.SetLo 
   cationCommand

2、3 目錄和文件的建立、復制、移動和刪除

  在windows PS中,用item表示在系統驅動器中的項目,因此用item作為cmdlet名詞部分的cmdlet都與文件或目錄的操作有關。

Exp:利用get-command的發現功能查詢文件操作相關命令

PS C:\> get-command *-item

CommandType     Name                             Definition                     
-----------     ----                             ----------                     
Cmdlet          Clear-Item                       Clear-Item [-Path] <String[]...
Cmdlet          Copy-Item                        Copy-Item [-Path] <String[]>...
Cmdlet          Get-Item                         Get-Item [-Path] <String[]> ...
Cmdlet          Invoke-Item                      Invoke-Item [-Path] <String[...
Cmdlet          Move-Item                        Move-Item [-Path] <String[]>...
Cmdlet          New-Item                         New-Item [-Path] <String[]> ...
Cmdlet          Remove-Item                      Remove-Item [-Path] <String[...
Cmdlet          Rename-Item                      Rename-Item [-Path] <String>...
Cmdlet          Set-Item                         Set-Item [-Path] <String[]> ...

  從上面可以看到一共有9個相關的命令,但是這並沒有包括全部的命令,因為還一個非常實用的命令:get-childitem;下面我們一一進行介紹:

1) get-item

  get-item的作用是獲取指定位置的項的相關信息。

Exp:利用get-item獲取當前路徑下項的信息

PS C:\> get-item .\


    目錄: 


Mode                LastWriteTime     Length Name                               
----                -------------     ------ ----                               
d--hs         2012/4/20      6:38            C:\    

Exp: 利用get-item獲取當前用戶home目錄的信息

 PS C:\> get-item $home


    目錄: C:\Users


Mode                LastWriteTime     Length Name                               
----                -------------     ------ ----                               
d----         2012/5/12     17:31            vol_20120330   

  這個命令具體可以參考幫助,其他就多說了。

2)get-childitem

  這個命令獲取某個項目中子項, 這個命令有很多的參數,但常用的有-name、 -recurse、-path、-force參數。

  name: 指定獲取子項的時候僅枚舉子項的名稱。

  recurse: 遞歸獲取

  path: 指定要枚舉的路徑,這個參數可以省略

  force:  獲取所有的子項,包括隱藏的子項

  這個命令還有include、exclude兩個常用的參數,具體就不介紹了,大家可以查看幫助。

Exp:例舉當前路徑下的子項名稱

PS C:\> get-childitem -name
DRIVERS
PerfLogs
Program Files
Users
Windows
autoexec.bat
config.sys
gdiplus.dll

Exp: 獲取指定路徑下的子項——獲取$home路徑下的子項

PS C:\> get-childitem -path $home


    目錄: C:\Users\vol_20120330


Mode                LastWriteTime     Length Name                               
----                -------------     ------ ----                               
d-r--         2012/3/30     18:27            Contacts                           
d-r--         2012/5/12     17:19            Desktop                            
d-r--         2012/5/12     17:18            Documents                          
d-r--         2012/5/12      5:34            Downloads                          
d-r--          2012/5/2      9:51            Favorites                          
d-r--         2012/3/30     18:27            Links                              
d-r--         2012/4/30     14:15            Music                              
d-r--         2012/3/30     18:27            Pictures                           
d-r--         2012/3/30     18:27            Saved Games                        
d-r--         2012/3/30     18:27            Searches                           
d-r--         2012/3/30     18:27            Videos                             
-a---         2012/5/12     17:25      10346 process.txt                        
-a---         2012/5/12     17:31       5254 process1.txt                       
-a---         2012/4/15     19:14        509 regwizard.log                      
-a---         2012/4/15     19:14       9853 sanct.log                          



_____________________________________________________________________________
PS C:\> get-childitem  $home


    目錄: C:\Users\vol_20120330


Mode                LastWriteTime     Length Name                               
----                -------------     ------ ----                               
d-r--         2012/3/30     18:27            Contacts                           
d-r--         2012/5/12     17:19            Desktop                            
d-r--         2012/5/12     17:18            Documents                          
d-r--         2012/5/12      5:34            Downloads                          
d-r--          2012/5/2      9:51            Favorites                          
d-r--         2012/3/30     18:27            Links                              
d-r--         2012/4/30     14:15            Music                              
d-r--         2012/3/30     18:27            Pictures                           
d-r--         2012/3/30     18:27            Saved Games                        
d-r--         2012/3/30     18:27            Searches                           
d-r--         2012/3/30     18:27            Videos                             
-a---         2012/5/12     17:25      10346 process.txt                        
-a---         2012/5/12     17:31       5254 process1.txt                       
-a---         2012/4/15     19:14        509 regwizard.log                      
-a---         2012/4/15     19:14       9853 sanct.log    

Exp: 獲取所有的子項,利用force參數

PS C:\> get-childitem -force


    目錄: C:\


Mode                LastWriteTime     Length Name                               
----                -------------     ------ ----                               
d--hs         2012/3/30     18:27            $Recycle.Bin                       
d--hs         2009/7/14     12:53            Documents and Settings             
d----         2012/3/30     18:30            DRIVERS                            
d-rh-          2012/4/3     16:33            MSOCache                           
d----         2009/7/14     10:37            PerfLogs                           
d-r--          2012/5/5     16:00            Program Files                      
d--h-          2012/5/5     16:00            ProgramData                        
d--hs         2012/3/30     18:26            Recovery                           
d--hs          2012/5/6      9:18            System Volume Information          
d-r--         2012/3/30     18:27            Users                              
d----          2012/5/5     14:54            Windows                            
-a---         2009/6/11      5:42         24 autoexec.bat                       
-a---         2009/6/11      5:42         10 config.sys                         
-a---         2008/9/10     15:00    1724416 gdiplus.dll                        
-a-hs         2012/5/12      3:32 1551273984 hiberfil.sys                       
-a-hs         2012/5/12      3:32 2068369408 pagefile.sys     

Exp:遞歸獲取路徑下的子項

PS C:\> get-childitem -path $home  -recurse


    目錄: C:\Users\vol_20120330


Mode                LastWriteTime     Length Name                               
----                -------------     ------ ----                               
d-r--         2012/3/30     18:27            Contacts                           
d-r--         2012/5/12     17:19            Desktop                            
d-r--         2012/5/12     17:18            Documents                          
d-r--         2012/5/12      5:34            Downloads                          
d-r--          2012/5/2      9:51            Favorites                          
d-r--         2012/3/30     18:27            Links                              
d-r--         2012/4/30     14:15            Music                              
d-r--         2012/3/30     18:27            Pictures                           
d-r--         2012/3/30     18:27            Saved Games                        
d-r--         2012/3/30     18:27            Searches                           
d-r--         2012/3/30     18:27            Videos                             
-a---         2012/5/12     17:25      10346 process.txt                        
-a---         2012/5/12     17:31       5254 process1.txt                       
-a---         2012/4/15     19:14        509 regwizard.log                      
-a---         2012/4/15     19:14       9853 sanct.log                          


    目錄: C:\Users\vol_20120330\Contacts


Mode                LastWriteTime     Length Name                               
----                -------------     ------ ----                               
-a---         2012/3/30     18:27      68381 vol_20120330.contact               

  get-childitem還有一個值得一提的功能: 就是支持通配符 * 、?和 [] ; 具體不舉實例了,基本和cmd里面的通配符差不多。

3) new-item

  通過new-item命令創建新項, 這個命令支持的常用參數有: path、itemtype。

  path: 指定要創建的新項的存放位置

  itemtype:指定要創建的新項的類型

Exp:  在 home路徑下創建一個vol的文件夾,創建一個vol.txt 的文件

PS C:\Users\vol_20120330> new-item -path $home\vol.txt  -itemtype file  


    目錄: C:\Users\vol_20120330


Mode                LastWriteTime     Length Name                               
----                -------------     ------ ----                               
-a---         2012/5/12     18:56          0 vol.txt    

  如上所示就為創建的文件。

PS C:\Users\vol_20120330> new-item -path $home\vol  -itemtype directory


    目錄: C:\Users\vol_20120330


Mode                LastWriteTime     Length Name                               
----                -------------     ------ ----                               
d----         2012/5/12     18:57            vol    

  如上所示創建的是文件夾/目錄。

4、重命名項

  利用rename-item來重命名項。

exp:

PS C:\Users\vol_20120330> rename-item  vol.txt  volcanol.txt

_____________________________________________________________________________
PS C:\Users\vol_20120330> ls


    目錄: C:\Users\vol_20120330


Mode                LastWriteTime     Length Name                               
----                -------------     ------ ----                               
d-r--         2012/3/30     18:27            Contacts                           
d-r--         2012/5/12     17:19            Desktop                            
d-r--         2012/5/12     17:18            Documents                          
d-r--         2012/5/12      5:34            Downloads                          
d-r--          2012/5/2      9:51            Favorites                          
d-r--         2012/3/30     18:27            Links                              
d-r--         2012/4/30     14:15            Music                              
d-r--         2012/3/30     18:27            Pictures                           
d-r--         2012/3/30     18:27            Saved Games                        
d-r--         2012/3/30     18:27            Searches                           
d-r--         2012/3/30     18:27            Videos                             
d----         2012/5/12     18:57            vol                                
-a---         2012/5/12     17:25      10346 process.txt                        
-a---         2012/5/12     17:31       5254 process1.txt                       
-a---         2012/4/15     19:14        509 regwizard.log                      
-a---         2012/4/15     19:14       9853 sanct.log                          
-a---         2012/5/12     18:56          0 volcanol.txt                       

  如上所示,命令執行成功后vol.txt變為volcanol.txt;  注意rename-item不能用於移動項目。

5、移動項目

   通過move-item移動項目

Exp: 通過move-item將當前路徑下的volcanol.txt 移動到vol目錄下

PS C:\Users\vol_20120330> cd vol

_____________________________________________________________________________
PS C:\Users\vol_20120330\vol> ls

_____________________________________________________________________________
PS C:\Users\vol_20120330\vol> move-item   ..\volcanol.txt  .\

_____________________________________________________________________________
PS C:\Users\vol_20120330\vol> ls


    目錄: C:\Users\vol_20120330\vol


Mode                LastWriteTime     Length Name                               
----                -------------     ------ ----                               
-a---         2012/5/12     18:56          0 volcanol.txt                       

  如上所示,命令成功執行,volcanol.txt 被移動到vol目錄下。

6、復制項

  通過copy-item復制項,但是這里copy-item命令有一點特殊的特性,copy-item僅能復制容器,不能復制容器內的類容。

PS C:\Users\vol_20120330> copy-item vol .\desktop

_____________________________________________________________________________
PS C:\Users\vol_20120330> get-childitem vol


    目錄: C:\Users\vol_20120330\vol


Mode                LastWriteTime     Length Name                               
----                -------------     ------ ----                               
-a---         2012/5/12     18:56          0 volcanol.txt                       



_____________________________________________________________________________
PS C:\Users\vol_20120330> get-childitem .\Desktop


    目錄: C:\Users\vol_20120330\Desktop


Mode                LastWriteTime     Length Name                               
----                -------------     ------ ----                               
d----         2012/5/12     19:10            vol                                
-a---          2012/5/5     14:54       2001 QQ影音.lnk                           
-a---         2012/5/12     17:05      79858 截圖00.jpg                           
-a---         2012/5/12     17:10     129290 截圖01.jpg                           
-a---         2012/5/12     17:16      10264 截圖02.jpg                           
-a---         2012/5/12     17:19      97789 截圖03.jpg                           
-a---          2012/4/6     19:36       1007 騰訊QQ.lnk                           



_____________________________________________________________________________
PS C:\Users\vol_20120330> get-childitem .\Desktop\vol

_____________________________________________________________________________

  如上面的執行情況所示,vol目錄被成功的復制到desktop目錄,但是vol下的volcanol.txt文件沒有復制到desktop\vol下面。

  為了復制容器下的項目需要添加recurse參數。

exp:復制容器下的項目

PS C:\Users\vol_20120330> copy-item vol  .\desktop  -recurse

_____________________________________________________________________________
PS C:\Users\vol_20120330> get-childitem vol


    目錄: C:\Users\vol_20120330\vol


Mode                LastWriteTime     Length Name                               
----                -------------     ------ ----                               
-a---         2012/5/12     18:56          0 volcanol.txt                       



_____________________________________________________________________________
PS C:\Users\vol_20120330> get-childitem .\Desktop


    目錄: C:\Users\vol_20120330\Desktop


Mode                LastWriteTime     Length Name                               
----                -------------     ------ ----                               
d----         2012/5/12     19:14            vol                                
-a---          2012/5/5     14:54       2001 QQ影音.lnk                           
-a---         2012/5/12     17:05      79858 截圖00.jpg                           
-a---         2012/5/12     17:10     129290 截圖01.jpg                           
-a---         2012/5/12     17:16      10264 截圖02.jpg                           
-a---         2012/5/12     17:19      97789 截圖03.jpg                           
-a---          2012/4/6     19:36       1007 騰訊QQ.lnk                           



_____________________________________________________________________________
PS C:\Users\vol_20120330> get-childitem .\Desktop\volcanol
 
PS C:\Users\vol_20120330> get-childitem .\Desktop\vol


    目錄: C:\Users\vol_20120330\Desktop\vol


Mode                LastWriteTime     Length Name                               
----                -------------     ------ ----                               
-a---         2012/5/12     18:56          0 volcanol.txt                       



_____________________________________________________________________________

  如上所示,vol下的文件也被復制。

7、刪除項目

  利用remove-item刪除項目

Exp:利用remove-item刪除上面復制的內容

PS C:\Users\vol_20120330> remove-item  .\Desktop\vol

_____________________________________________________________________________
PS C:\Users\vol_20120330> remove-item  .\Desktop\vol -recurse

_____________________________________________________________________________
PS C:\Users\vol_20120330> get-item .\Desktop\vol
Get-Item : 找不到路徑“C:\Users\vol_20120330\Desktop\vol”,因為該路徑不存在。
所在位置 行:1 字符: 9
+ get-item <<<<  .\Desktop\vol
    + CategoryInfo          : ObjectNotFound: (C:\Users\vol_20120330\Desktop\vo 
   l:String) [Get-Item], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetIte 
   mCommand
 

  如上,第一個命令:  “PS C:\Users\vol_20120330> remove-item .\Desktop\vol”  在執行的時候當vol下面有文件的時候,會彈出一個

對話框詢問是否刪除非空目錄。

  第二個命令: “PS C:\Users\vol_20120330> remove-item .\Desktop\vol -recurse”  將直接刪除目錄容器及其包含的內容,而且不提示,因此

在使用的時候需要注意。

  第三個命令:  “PS C:\Users\vol_20120330> get-item .\Desktop\vol” 的執行情況,說明第二個命令成功執行了。

7、執行項目

  通過在PS中使用 invoke-item 命令可以實現執行項目的作用。

Exp: 在PS中執行$home

  invoke-item  $home       #這個命令像在windows資源管理器中雙擊$home 目錄一樣,將會打開資源管理器,並且定位到$home目錄。

三、小結

  PS中關於重定向和文件目錄管理的功能,還是非常易於使用的,掌握這些對系統管理將大有幫助。

 

待續......


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM