[解決済み] コピーアイテムはデフォルトで上書きをする
2022-03-11 22:24:14
質問
以下のコードから期待する動作は。
- ソースディレクトリ内のファイル一覧を取得する。
-
ループして、各ファイルをバックアップ先にコピーします(まだ存在しない場合のみ)。
if (!(Test-Path C:\Folder\Destination)) { New-Item -ItemType Directory -Force -Path C:\Folder\Destination } $originalfiles = Get-ChildItem -Path "C:\Folder\Source" $originalfiles foreach ($file in $originalfiles) { Write-Host Write-Host File Name: -ForegroundColor DarkYellow Write-Host $file.Name Write-Host File Path: -ForegroundColor DarkYellow Write-Host $file.FullName $src = $file.FullName $dest = "C:\Folder\Destination\$($file.Name)" Copy-Item $src $dest }
と思っていたのですが、その
Copy-Item
コマンドレットは、デフォルトで上書きしないようになっています。
-Force
フラグを使用します。これは、私が過去に上書きをしたい状況に遭遇したときに見た動作です。
また、もしかしたらと思い、導入したのが
foreach
しかし、コピーコマンドを単独で、単一のファイルのためにハードコードされたパスで試してみましたが、やはり同じでした。
IDEを再起動したほうがいいのか、それとも私の見過ごしたミスなのか?
解決方法は?
迷ったときは ドキュメント .
-フォース
読み取り専用のファイルまたはエイリアスの上にコピーするなど、他の方法では変更できない項目をコピーできるようにするコマンドレットを許可します。
のデフォルトの動作は
Copy-Item
は、既存の項目を置き換えるものです。そのため
-Force
スイッチは、たとえば保存先ファイルに読み取り専用属性が設定されている場合にのみ、置換を強制するものです。
を使用することができます。
-Confirm
の前にプロンプトが表示されます。
Copy-Item
は操作を実行します。
-WhatIf
を実行し、コマンドレットが何を行うかを確認します。
関連
-
[解決済み】'<'演算子は将来の使用のために予約されている
-
[解決済み] Get-ADUser -Identity
-
[解決済み] PowerShellで"%"(パーセント)は何をするのですか?
-
[解決済み] PowerShellでSharePoint 2013の連絡先リストに項目を作成する方法は?
-
[解決済み] PowerShellで遠隔地からファイルをコピーする
-
[解決済み] powershellスクリプトで、最後に改行を入れずにWrite-Warningすることはできますか?
-
[解決済み] PowerShellでCMDコマンドを実行する
-
[解決済み] Write-ErrorとThrowはいつ使い分ける?終端エラーと非終端エラー
-
[解決済み] PowerShellの画面を各コマンドの前に自動的にクリアする方法はありますか?
-
[解決済み] Powershell プロセスの開始、タイムアウトによる待機、Kill、終了コードの取得
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] PowerShellです。エラー "引数 ... を受け入れる位置パラメーターが見つかりません"
-
[解決済み] リモートサーバーへのEnter-PSSessionが "access is denied "で失敗する。
-
[解決済み] Invoke-Sqlcmd エラー : リモート DB サーバを呼び出すために powershell を実行すると、ユーザ xxxx のログインに失敗しました。
-
[解決済み] Powershell - 空のパイプ要素は許可されません。
-
[解決済み] Windows PowerShellでファイルが存在するかどうかをチェックする?
-
[解決済み] PowerShellでショートカットを作成する方法
-
[解決済み] PowerShellでコンソールに書き込むには?
-
[解決済み] PowerShellを使用してSFTPにファイルをアップロードする
-
[解決済み] powershell内でキーストロークを実行する方法は?
-
[解決済み] PowershellでTimeZoneを設定する方法