bat批量修改文件名:文件批處理命令

為了從開源代碼生成第三方庫,需要複製相關的頭文件(.h文件)、靜態庫文件(.lib文件)、動態庫文件(.dll文件)、以及與庫文件同名的pdb文件。如果只需要生成一兩個庫文件,人工做還好;如果有十幾甚至幾十個庫,人手工複製文件是一件很令人抓狂的事情。

本文使用批處理文件來解決這個問題,使用計算機完成這種簡單的重複性工作。

以Zlib的源碼編譯為例,使用CMake、VS2019生成Debug及Release版本,在Debug的目錄中有以下文件:

使用批處理文件複製lib及同名的pdb文件

需求是:將目錄「D:SourceCodeszlib-1.2.11buildDebug」中的zlibd.lib、zlibd.pdb、zlibstaticd.lib、zlibstaticd.pdb四個文件複製到目錄「D:My3rdPartylib」中;將zlibd.lib、zlibd.pdb兩個文件複製到目錄「D:My3rdPartybin」中;將「D:SourceCodeszlib-1.2.11」及「D:SourceCodeszlib-1.2.11build」兩個目錄中的所有頭文件複製到目錄「D:My3rdPartyinclude」中。

以上這些工作,人工可以做,但是項目多時,人工做的效率低,還很容易出錯,所以編寫批處理文件來做,好處是大大的。

批處理文件名為makeMy3rdParty(假設該文件在目錄「D:My3rdParty」中)內容如下:

@echo off

setlocal ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS

rem 來源目錄

set srcDir=%1

echo srcDir is %srcDir%

rem 目標目錄

set dstDir=%2

echo dstDir is %dstDir%

rem debug版lib文件所在目錄及目標目錄

set src=%srcDir%builddebug

set dst=%dstDir%lib

rem 複製lib及pdb文件到lib目錄

for /r %src% %%i in (*.lib) do (

rem 複製lib文件

echo copying %%i to %dst%

copy %%i %dst%

rem 複製同名的pdb文件

echo copying %src%%%~ni.pdb to %dst%

copy %src%%%~ni.pdb %dst%

)

rem 複製dll及pdb文件到bin目錄

set src=%srcDir%builddebug

set dst=%dstDir%bin

rem 複製lib及pdb文件到lib目錄

for /r %src% %%i in (*.dll) do (

rem 複製lib文件

echo copying %%i to %dst%

copy %%i %dst%

rem 複製同名的pdb文件

echo copying %src%%%~ni.pdb to %dst%

copy %src%%%~ni.pdb %dst%

)

rem 複製release版lib文件

echo copying release lib files

set src=%srcDir%buildrelease

set dst=%dstDir%lib

echo copying %src%*.lib to %dst%

copy %src%*.lib %dst%

rem 複製release版dll文件

echo copying release dll files

set src=%srcDir%buildrelease

set dst=%dstDir%bin

echo copying %src%*.dll to %dst%

copy %src%*.dll %dst%

rem 複製頭文件

echo copying header files to %dstDir%include

copy %srcDir%*.h %dstDir%include

copy %srcDir%build*.h %dstDir%include

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/224513.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 14:38
下一篇 2024-12-09 14:38

相關推薦

發表回復

登錄後才能評論