[解決済み] Windows PowerShellでファイルが存在するかどうかをチェックする?
2022-03-02 07:09:54
質問
ディスクの2つの領域にあるファイルを比較し、最新のファイルを更新日の古いほうにコピーするスクリプトを作成しました。
$filestowatch=get-content C:\H\files-to-watch.txt
$adminFiles=dir C:\H\admin\admin -recurse | ? { $fn=$_.FullName; ($filestowatch | % {$fn.contains($_)}) -contains $True}
$userFiles=dir C:\H\user\user -recurse | ? { $fn=$_.FullName; ($filestowatch | % {$fn.contains($_)}) -contains $True}
foreach($userfile in $userFiles)
{
$exactadminfile= $adminfiles | ? {$_.Name -eq $userfile.Name} |Select -First 1
$filetext1=[System.IO.File]::ReadAllText($exactadminfile.FullName)
$filetext2=[System.IO.File]::ReadAllText($userfile.FullName)
$equal = $filetext1 -ceq $filetext2 # case sensitive comparison
if ($equal) {
Write-Host "Checking == : " $userfile.FullName
continue;
}
if($exactadminfile.LastWriteTime -gt $userfile.LastWriteTime)
{
Write-Host "Checking != : " $userfile.FullName " >> user"
Copy-Item -Path $exactadminfile.FullName -Destination $userfile.FullName -Force
}
else
{
Write-Host "Checking != : " $userfile.FullName " >> admin"
Copy-Item -Path $userfile.FullName -Destination $exactadminfile.FullName -Force
}
}
以下は、files-to-watch.txtのフォーマットです。
content\less\_light.less
content\less\_mixins.less
content\less\_variables.less
content\font-awesome\variables.less
content\font-awesome\mixins.less
content\font-awesome\path.less
content\font-awesome\core.less
これを、両方の領域にファイルが存在しない場合はこの処理を行わず、警告メッセージを表示するように修正したいと思います。 どなたか、PowerShellを使ってファイルが存在するかどうかをチェックする方法を教えていただけませんか?
解決方法は?
提供するもの
代替案
に対して
Test-Path
コマンドレット
(誰も言及しなかったので)。
[System.IO.File]::Exists($path)
と(ほぼ)同じことをします。
Test-Path $path -PathType Leaf
ただし、ワイルドカード文字をサポートしていない
関連
-
[解決済み] PowerShellでSharePoint 2013の連絡先リストに項目を作成する方法は?
-
[解決済み] PowerShellにおけるセット(データ構造)
-
[解決済み] インストールされたPowerShellのバージョンを確認する
-
[解決済み] PowerShellで「このシステムではスクリプトの実行が無効になっています」と言われる。
-
[解決済み] PowerShellでコードをコメントアウトする方法とは?
-
[解決済み] Windows PowerShellの環境変数を設定する
-
[解決済み] PowerShellで文字列と変数を連結する方法は?
-
[解決済み] PowerShellでスクリプトを終了させる
-
[解決済み】PowerShellスクリプトを実行する方法
-
[解決済み】WindowsのPowershellでUnixのtailと同等のコマンドを実行する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] NULL 値の式でメソッドを呼び出すことはできない
-
[解決済み】'<'演算子は将来の使用のために予約されている
-
[解決済み] Export-Csv - パス 'C:\export.csv' へのアクセスは拒否されました。
-
[解決済み] xPath を使用する Powershell スクリプトの .SelectSingleNode が web.config ファイルから値を抽出する際に動作していない
-
[解決済み] Push-LocationとSet-Locationの使い分けは?
-
[解決済み] Get-ADUserとフィルタを含むForEach-Objectループ
-
[解決済み] PowerShell モジュールを全ユーザーに持続的にインストールする
-
[解決済み] PowerShellの複数行コメント
-
[解決済み] PowerShell:PowerShellで配列オブジェクトを文字列に変換するにはどうすればよいですか?
-
[解決済み] PowerShellでパスが存在するかどうかを確認する良い方法 [終了しました]