2016-12-06 6 views
-1

私はいくつかの例外を除いて、あるフォルダから別のフォルダにすべてのファイルをコピーする必要があるバッチスクリプトに取り組んでいます。 "Proxy.dll"で終わるファイルを無視するにはどうすればいいですか?バッチファイル内のパターンを無視する

基本的には、xcopyを使用するときに名前の一部に基づいてファイルを無視することができます。

は、これが私のスクリプト

xcopy C:\\WebService %InstallFolder%\ /EXCLUDE:XcopyExclude.txt /e /s /k /r /h /y /i >>Setup.log 

であり、これはXcopyExclude.txt

.config\ 
Properties 
Obj 
*Proxy.dll 

おかげ

+1

'Robocopy'コマンド、/ XF'(除外ファイル)スイッチ –

+1

あなたの質問を編集し、[mcve]を満たすためのあなたの(失敗した)試みを共有してください。 – JosefZ

答えて

0

robocopy commandxcopyが行うよりも、よりインテリジェントな除外機能(スイッチ/XD/XF)を提供していますあなたの仕事に使うことができる:

それは xcopyコマンドのものと非常に似ているように /Nならびに /FPスイッチ始まるの
robocopy "C:\WebService" "%InstallFolder%" "*.*" /XD "*.config" "Properties" "Obj" /XF "*Proxy.dll" /E /S /FP /NJH /NJS /NS /NC /NDL /NP /LOG+:"Setup.log" 

すべてのスイッチは、ログに記録出力の外観を制御します。あなたがxcopy/EXCLUDEオプションを主張した場合


:これはのみ*または?が、リテラル(大文字と小文字を区別しない)文字列のようにワイルドカードをサポートしていません。ただし、事前に*Proxy.dllでワイルドカードを解決できます。 ...あなたは、次の内容のファイルXcopyExclude.txtを持って考える:

.config\ 
\Properties\ 
\Obj\ 

...(と仮定すると、これらすべての項目があること(部分)ディレクトリ名)、あなたは一時的にこのコンテンツをコピーすることができファイルと実際のコピーの活動の前に、解決*Proxy.dll一部を追加:ソースディレクトリツリーにAnyProxy.dllというファイルがあると仮定すると

rem // Prepare exclusion list file: 
copy /Y "XcopyExclude.txt" "XcopyExclude.tmp" 
>> "XcopyExclude.tmp" (
    for /R "C:\WebService" %%E in ("*Proxy.dll") do (
     echo(\%%~nxE 
    ) 
) 
rem // Perform copying action: 
xcopy "C:\WebService" "%InstallFolder%" /E /S /K /R /H /Y /I /EXCLUDE:XcopyExclude.tmp >> "Setup.log" 
rem // Clean up temporary list file: 
del "XcopyExclude.tmp" 

、ファイルXcopyExclude.tmpのための関連エントリは0になります。 AnyProxy.dll.anyという項目も誤って除外されることに注意してください。

関連する問題