Windowsバッチファイルで楽をする:copyコマンドを使った高度な例

Windows
記事内に広告が含まれています。
スポンサーリンク
スポンサーリンク

copyコマンドを使用したバッチファイル

Windowsバッチファイルは、単純なファイルコピーから複雑なファイル管理まで、多岐にわたるタスクを自動化することができます。
copyコマンドはその中心的な役割を担っており、その応用例は無限に広がります。
ここでは、copyコマンドを応用したバッチファイルの例をいくつか紹介し、それぞれの説明を加えます。

ファイルの条件付きコピー

ファイルをコピーする際に、特定の条件を満たすファイルのみを選択的にコピーしたい場合があります。
例えば、特定の日付より新しいファイルのみをコピーする、といったシナリオです。
以下のバッチファイルは、そのような条件付きコピーを実現する例です。

@echo off
setlocal
set source="C:\source"
set destination="D:\destination"
set diffdate=2024-05-11

for /f "delims=" %%i in ('dir "%source%\*.*" /a-d /b') do (
    for /f "tokens=1-3 delims=/ " %%a in ("%%~ti") do (
        if "%%c-%%a-%%b" geq "%diffdate%" (
            copy "%source%\%%i" "%destination%"
        )
    )
)
endlocal

このスクリプトは、C:\sourceディレクトリ内のファイルをD:\destinationにコピーしますが、指定された日付(この例では2024年5月11日)より新しいファイルのみを対象とします。

バックアップスクリプト

定期的なバックアップは、データの安全性を確保する上で重要です。
以下のバッチファイルは、特定のフォルダ内のファイルを定期的にバックアップするためのスクリプトです。

@echo off
set source="C:\work\documents"
set backup="D:\backup\%date:/=-%"

if not exist "%backup%" mkdir "%backup%"
copy /Y "%source%\*.*" "%backup%"

このスクリプトは、C:\work\documentsフォルダ内の全てのファイルを、日付をフォルダ名に含むD:\backupディレクトリにコピーします。
/Yオプションにより、確認なしで既存のファイルを上書きします。

ネットワーク経由のファイルコピー

ネットワーク上のファイルをローカルにコピーする際には、接続の問題でコピーが中断される可能性があります。
以下のバッチファイルは、中断されたコピーを再開する機能を持っています。

@echo off
set "source=\\network\shared\files"
set "destination=C:\local\files"
copy /Z "%source%\*.*" "%destination%"

/Zオプションを使用することで、ネットワークエラーなどでコピーが中断された場合でも、再開することができます。

まとめ

これらの例は、copyコマンドの応用方法の一部に過ぎませんが、バッチファイルを使った自動化の可能性を広げるための出発点となるでしょう。
バッチファイルを活用することで、日々の作業を効率化し、時間を節約することが可能です。

免責規定

この記事で提供される情報は、一般的なガイダンスを目的としており、すべての環境やシステムでの動作を保証するものではありません。
OSのバージョンやリリースによっては、記載されているコマンドが実行できない、または異なる結果をもたらす可能性があります。
また、会社内のパソコンなど、ポリシーや権限によっては実行できない場合があります。
実行には管理者権限が必要な場合が多いため、注意が必要です。
この記事の情報を使用することによって生じる問題や結果について、筆者およびサイト管理者は責任を負いません。
すべての操作は自己責任で行ってください。

最後までお読みいただきありがとうございました。
またお会いしましょう!

コメント

タイトルとURLをコピーしました