主として次のようなフォルダー構造内に含まれる作業フォルダーをバックアップしたいと考えています。
www
- project 1
- assets
- node_modules
- project 1
- assets
- node_modules
- project 1
- assets
- node_modules
すべてのプロジェクトをコピーする必要がありますが、各プロジェクト内の node_modules フォルダーは除外する必要があります。これを一括して行う簡単な方法はありますか? 処理するプロジェクトが大量にあるためです。
Windows 8.1で実行
答え1
すべてのプロジェクトをコピーする必要がありますが、node_modulesフォルダは除外する必要があります
xcopy
以下のオプションと一緒に使用できますexclude
:
xcopy www backup /exclude:except.txt
except.txt
除外するファイルのディレクトリのリストが含まれます。
except.txt:
node_modules
/EXCLUDE:file1[+file2][+file3]...
- 各ファイルには、除外する 1 つ以上の完全パス名または部分パス名を含めることができます。
- これらのいずれかがソース ファイルの絶対パスの一部と一致する場合、そのファイルは除外されます。
- たとえば、
\obj\
またはのような文字列を指定すると、それぞれ.obj
ディレクトリの下にあるすべてのファイルobj
、または拡張子を持つすべてのファイルが除外されます.obj
。
ソースxコピー- ファイルやディレクトリ ツリーを別のフォルダーにコピーします。
参考文献
- Windows CMD コマンドラインの AZ インデックス- Windows コマンド ラインに関連するあらゆることに関する優れたリファレンス。
答え2
回答してくれた @DavidPostill に感謝します。うまくいきました。ただし、robocopy も動作させることができました。役に立つかもしれない人のために、コマンドは次のとおりです。
robocopy SOURCE DEST /mir /xd node_modules
Source はコピー先のフォルダー、dest はコピー先です。最後に、除外するフォルダーとして node_modules を指定します。
答え3
の中にコンテキストメニュー「のファイルエクスプローラー「私はPowerShell スクリプトそれは私にnode_modulesのないフォルダを複製する:
やり方は次のとおりです:
PowerShell スクリプト ファイルを作成しますscript.ps1
。
$Source=$args[0]
$Position = $Source.lastindexofany("\")
$Destination = $Source.substring(0, $Position + 1)
$FolderName = $Source.substring($Position + 1)
$Destination = "$($Destination)$($FolderName)-DUPLICATE_WITHOUT_NODE_MODULES"
robocopy $Source $Destination /mir /xd node_modules
レジストリファイルを作成します: (例: Add_Script_To_ContextMenu.reg
)
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\DupFolderWithoutNodeModules]
@="Duplicate folder without node_modules"
[HKEY_CLASSES_ROOT\Directory\shell\DupFolderWithoutNodeModules\command]
@="C:\\\\Windows\\\\system32\\\\WindowsPowerShell\\\\v1.0\\\\powershell.exe -File \"C:\\Path of_your_script\\script.ps1\" \"%L\""
を自分のものに置き換えてください。 を 2 倍にすることC:\\Path of_your_script
を忘れないでください。\
\\
次に、.reg ファイルをダブルクリックします。
そして完了です。