PowerShell/ファイル・フォルダの存在チェック・Test-Path
の編集
Top
/
PowerShell
/
ファイル・フォルダの存在チェック・Test-Path
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#navi(../) * Test-Pathコマンドレットを使用してファイル・フォルダの存在確認を行う方法 [#adc4e143] PowerShellのTest-Pathコマンドレットを使用することにより、ファイル・フォルダの有無を確認することができます。~ また、Test-Pathはレジストリ内に指定したキーワードが存在するかも確認することができます。~ 以下に使用例を記します。 #contents #htmlinsertpcsp(win-top.html,win-sp.html) * 関連記事 [#ufa501ff] -[[レジストリのルートーキーの省略キー名称>Windows関連/レジストリのルートーキーの省略キー名称]] -[[ファイル・フォルダの存在チェック・Test-Pathコマンドレット>PowerShell/ファイル・フォルダの存在チェック・Test-Path]] -[[PowerShellでテキストファイルの指定した範囲を抽出する・Get-Content>PowerShell/テキストファイルの指定した範囲を抽出する・Get-Content]] -[[PowerShellでテキストファイルの行数を取得する方法・Get-Content>PowerShell/テキストファイルの行数を取得する方法・Get-Content]] -[[PowerShellでファイルサイズがゼロのファイルを作成する・New-Item>PowerShell/ファイルサイズがゼロのファイルを作成する・New-Item]] -[[テキストファイルを1行ずつ読み込むサンプルコード>PowerShell/テキストファイルを1行ずつ読み込むサンプルコード]] -[[Stringオブジェクトのパス文字列を分解する方法・Split-Path>PowerShell/Stringオブジェクトのパス文字列を分解する方法・Split-Path]] -[[相対パスからフルパスを取得する・Convert-Path>PowerShell/相対パスからフルパスを取得する・Convert-Path]] -[[パス文字列の結合・Join-Path>PowerShell/パス文字列の結合・Join-Path]] * Test-Pathコマンドレットを使ってみる [#d1bc4bdd] Test-Pathコマンドレットを使って、ファイル、フォルダ、レジストリの存在確認をしてみます。 ** Test-Pathコマンドレットでファイルの存在確認 [#qfe684d9] Test-Pathコマンドレットに存在確認するファイル名を指定し実行した結果です。~ ワイルドカードも利用することができます。~ 存在する場合は、True, 存在しない場合はFalseが返却されているのが確認できます。 PS C:\Windows> dir *.log ディレクトリ: C:\Windows Mode LastWriteTime Length Name ---- ------------- ------ ---- <snip> -a--- 2012/01/11 16:09 1313 TSSysprep.log -a--- 2012/09/14 11:17 1534693 WindowsUpdate.log PS C:\Windows> Test-Path .\WindowsUpdate.log True PS C:\Windows> Test-Path .\*.log True PS C:\Windows> Test-Path .\*.txt False PS C:\Windows> ** Test-Pathコマンドレットでディレクトリの存在確認 [#d18639c8] 上記のファイルの存在確認同様、フォルダ(ディレクトリ)を指定して実行した結果です。~ 存在する場合は、True, 存在しない場合はFalseが返却されているのが確認できます。 PS C:\> Test-Path .\Users True PS C:\> Test-Path .\U* True PS C:\> Test-Path .\Users\Linux False ** レジストリの確認 [#b8a15b47] HKEY_LOCAL_MACHINEレジストリの存在確認を実行した結果です。~ 存在する場合は、True, 存在しない場合はFalseが返却されているのが確認できます。 PS C:\> Test-Path HKLM:\HARDWARE True PS C:\> Test-Path HKLM:\HARDWARE\DESCRIPTION True PS C:\> Test-Path HKLM:\HARDWARE\DESCRIPTION\System True PS C:\> Test-Path HKLM:\HARDWARE\DESCRIPTION\System\CentralProcessor True HKLM, HKCUなどのレジストリの省略名については、以下の記事を参照してください。 -[[レジストリのルートーキーの省略キー名称>Windows関連/レジストリのルートーキーの省略キー名称]] * ifを使って判定してみる [#i30ef7ef] if構文を使ってファイルの存在確認を行うスクリプトを以下に記します。 ** Test-Pathコマンドレットを使用したサンプルコード [#ybe00031] 引数に指定されたファイルをTest-Pathコマンドレットを使い存在チェックを行います。 #ref(FileExists.zip) #################### # FileExists.ps1 #################### function usage { Write-Host "Usage: "$Script:MyInvocation.MyCommand.Name "<filename> <filename> ..." exit 1 } if ($args.length -eq 0) { usage } foreach($f in $args) { if (Test-Path $f) { Write-Host $f is found! } else { Write-Host $f is not found! } } ** サンプルコードの実行例 [#j2b7a89b] 上記のFileExists.ps1の実行例を以下に記します。~ 実行例では、3つの引数を渡し3つのファイルの存在チェックを行っています。 PS Z:\sample> .\FileExists.ps1 C:\Windows C:\Windows\WindowsUpdate.log C:\Linux C:\Windows is found! C:\Windows\WindowsUpdate.log is found! C:\Linux is not found! #htmlinsertpcsp(win-btm.html,win-sp.html)
タイムスタンプを変更しない
#navi(../) * Test-Pathコマンドレットを使用してファイル・フォルダの存在確認を行う方法 [#adc4e143] PowerShellのTest-Pathコマンドレットを使用することにより、ファイル・フォルダの有無を確認することができます。~ また、Test-Pathはレジストリ内に指定したキーワードが存在するかも確認することができます。~ 以下に使用例を記します。 #contents #htmlinsertpcsp(win-top.html,win-sp.html) * 関連記事 [#ufa501ff] -[[レジストリのルートーキーの省略キー名称>Windows関連/レジストリのルートーキーの省略キー名称]] -[[ファイル・フォルダの存在チェック・Test-Pathコマンドレット>PowerShell/ファイル・フォルダの存在チェック・Test-Path]] -[[PowerShellでテキストファイルの指定した範囲を抽出する・Get-Content>PowerShell/テキストファイルの指定した範囲を抽出する・Get-Content]] -[[PowerShellでテキストファイルの行数を取得する方法・Get-Content>PowerShell/テキストファイルの行数を取得する方法・Get-Content]] -[[PowerShellでファイルサイズがゼロのファイルを作成する・New-Item>PowerShell/ファイルサイズがゼロのファイルを作成する・New-Item]] -[[テキストファイルを1行ずつ読み込むサンプルコード>PowerShell/テキストファイルを1行ずつ読み込むサンプルコード]] -[[Stringオブジェクトのパス文字列を分解する方法・Split-Path>PowerShell/Stringオブジェクトのパス文字列を分解する方法・Split-Path]] -[[相対パスからフルパスを取得する・Convert-Path>PowerShell/相対パスからフルパスを取得する・Convert-Path]] -[[パス文字列の結合・Join-Path>PowerShell/パス文字列の結合・Join-Path]] * Test-Pathコマンドレットを使ってみる [#d1bc4bdd] Test-Pathコマンドレットを使って、ファイル、フォルダ、レジストリの存在確認をしてみます。 ** Test-Pathコマンドレットでファイルの存在確認 [#qfe684d9] Test-Pathコマンドレットに存在確認するファイル名を指定し実行した結果です。~ ワイルドカードも利用することができます。~ 存在する場合は、True, 存在しない場合はFalseが返却されているのが確認できます。 PS C:\Windows> dir *.log ディレクトリ: C:\Windows Mode LastWriteTime Length Name ---- ------------- ------ ---- <snip> -a--- 2012/01/11 16:09 1313 TSSysprep.log -a--- 2012/09/14 11:17 1534693 WindowsUpdate.log PS C:\Windows> Test-Path .\WindowsUpdate.log True PS C:\Windows> Test-Path .\*.log True PS C:\Windows> Test-Path .\*.txt False PS C:\Windows> ** Test-Pathコマンドレットでディレクトリの存在確認 [#d18639c8] 上記のファイルの存在確認同様、フォルダ(ディレクトリ)を指定して実行した結果です。~ 存在する場合は、True, 存在しない場合はFalseが返却されているのが確認できます。 PS C:\> Test-Path .\Users True PS C:\> Test-Path .\U* True PS C:\> Test-Path .\Users\Linux False ** レジストリの確認 [#b8a15b47] HKEY_LOCAL_MACHINEレジストリの存在確認を実行した結果です。~ 存在する場合は、True, 存在しない場合はFalseが返却されているのが確認できます。 PS C:\> Test-Path HKLM:\HARDWARE True PS C:\> Test-Path HKLM:\HARDWARE\DESCRIPTION True PS C:\> Test-Path HKLM:\HARDWARE\DESCRIPTION\System True PS C:\> Test-Path HKLM:\HARDWARE\DESCRIPTION\System\CentralProcessor True HKLM, HKCUなどのレジストリの省略名については、以下の記事を参照してください。 -[[レジストリのルートーキーの省略キー名称>Windows関連/レジストリのルートーキーの省略キー名称]] * ifを使って判定してみる [#i30ef7ef] if構文を使ってファイルの存在確認を行うスクリプトを以下に記します。 ** Test-Pathコマンドレットを使用したサンプルコード [#ybe00031] 引数に指定されたファイルをTest-Pathコマンドレットを使い存在チェックを行います。 #ref(FileExists.zip) #################### # FileExists.ps1 #################### function usage { Write-Host "Usage: "$Script:MyInvocation.MyCommand.Name "<filename> <filename> ..." exit 1 } if ($args.length -eq 0) { usage } foreach($f in $args) { if (Test-Path $f) { Write-Host $f is found! } else { Write-Host $f is not found! } } ** サンプルコードの実行例 [#j2b7a89b] 上記のFileExists.ps1の実行例を以下に記します。~ 実行例では、3つの引数を渡し3つのファイルの存在チェックを行っています。 PS Z:\sample> .\FileExists.ps1 C:\Windows C:\Windows\WindowsUpdate.log C:\Linux C:\Windows is found! C:\Windows\WindowsUpdate.log is found! C:\Linux is not found! #htmlinsertpcsp(win-btm.html,win-sp.html)
テキスト整形のルールを表示する
添付ファイル:
FileExists.zip
1565件
[
詳細
]