❶ 請教高手用批處理搜索硬碟所有分區特定文件復制到U盤
以下為批處理xc.cmd 的內容
x %1:\*.doc %2\%1\ /s
x %1:\*.xls %2\%1\ /s
運行實例:
將C:盤的doc xls 文件復制到U盤的YY目錄,假設U盤的盤符是X:
xc c x:\yy
注意事項:
x 為外部命令,分DOS和windows版 不能混用。windows版的放在C:\windows\system32目錄中
指定%1 %2參數的目的主要是防止出現同名目錄中有同名文件,如果有此情況,運行中途會提示,你只能覆蓋或者跳過。概率很小,但是必須提示你。
以下為x參考
XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]
[/EXCLUDE:file1[+file2][+file3]...]
source 指定要復制的文件。
destination 指定新文件的位置和/或名稱。
/A 只復制有存檔屬性集的文件,
但不改變屬性。
/M 只復制有存檔屬性集的文件,
並關閉存檔屬性。
/D:m-d-y 復制在指定日期或指定日期以後更改的文件。
如果沒有提供日期,只復制那些源時間
比目標時間新的文件。
/EXCLUDE:file1[+file2][+file3]...
指定含有字元串的文件列表。每一個字元串
必須在文件的單獨行中。如果有任何
字元串與要被復制的文件的絕對路徑
相符,那個文件將不會得到復制。
例如,指定如 \obj\ 或 .obj 的字元串會排除
目錄 obj 下面的所有文件或帶有
.obj 擴展名的文件。
/P 創建每個目標文件前提示。
/S 復制目錄和子目錄,除了空的。
/E 復制目錄和子目錄,包括空的。
與 /S /E 相同。可以用來修改 /T。
/V 驗證每個新文件。
/W 提示您在復制前按鍵。
/C 即使有錯誤,也繼續復制。
/I 如果目標不存在,又在復制一個以上的文件,
則假定目標一定是一個目錄。
/Q 復制時不顯示文件名。
/F 復制時顯示完整的源和目標文件名。
/L 顯示要復制的文件。
/G 允許將沒有經過加密的文件復制到
不支持加密的目標。
/H 也復制隱藏和系統文件。
/R 覆蓋只讀文件。
/T 創建目錄結構,但不復制文件。
不包括空目錄或子目錄。/T /E 包括
空目錄和子目錄。
/U 只復制已經存在於目標中的文件。
/K 復制屬性。一般的 X 會重置只讀屬性。
/N 用生成的短名復制。
/O 復制文件所有權和 ACL 信息。
/X 復制文件審核設置(隱含 /O)。
/Y 復制文件審核設置(隱含 /O)。
現存目標文件。
/-Y 導致提示以確認改寫一個
現存目標文件。
/Z 用重新啟動模式復制網路文件。
命令行開關 /Y 可以預先在 COPYCMD 環境變數中設置。
這可能被命令行上的 /-Y 改寫。
❷ 求將指定文件夾後台復制到U盤的批處理
假如U盤是F盤
1.新建一個文本文件,重命名為123.BAT,(一定要把原來的擴展名.TXT改為.BAT)
2.右擊123.BAT,選擇"編輯"
3.在編輯窗口輸入以下內容:
x d:\新建文件夾\*.* f:\ /s/e/a
4.保存,完成
5.直接雙擊123.BAT就可以了.
❸ 批處理x復制特定文件類型到U盤
@echoon
set/pvar=搜索的文件類型:
for%%ain(CDEFGHIJKLMNOPQRSTUVWXYZ)do(
ifexist%%a:(
for/f"delims="%%bin('dir/ad/s/b%%a:')do(
ifexist"%%b"x%%b*.%var%%cd%s
)
)
)
pause
打開bat後會提示,只需要輸入要搜索文件類型的後綴名即可,
這個bat是檢索全盤每一個目錄包括其目錄,用時比較長,不想搜索C盤的話可以將第三行C刪掉,每個目錄會執行復制指定文件到bat當前路徑的操作,沒有相應文件的時候會報「無效的參數數量」。第一行「echo on」打開回顯,方便觀看當前查找進度,不想看的話改成"echo off"
括弧內最後一行s參數:復制後會帶有源文件目錄結構,目錄中只存在要查找的文件類型,這樣可以避免因文件名重復引起的覆蓋跳過等提示,刪掉s參數可以復制類型文件到當前目錄下,不會自動創建其他目錄,如果有重復文件需要手動確認。如果想統一確認Y N A的話括弧內最後一行改為ifexist"%%b" echo n|x%%b*.%var%%cd%s 這個意思就是全部不覆蓋,ifexist"%%b" echo y|x%%b*.%var%%cd%s 是全部覆蓋
❹ 我想每次運行批處理文件,就把D:\Program Files\Tencent\QQ\Users\4158559\msg2.0.db復制到我的U盤上。
試試這個吧
我這里測試成功
@echo off
echo 正在拷貝...
for %%i in (d e f g h i j k l m n) do (
fsutil fsinfo drivetype %%i: | findstr "可移動" >nul 2>nul && if exist %%i: D:\Program Files\Tencent\QQ\Users\4158559\msg2.0.db %%i:\
)
pause&exit
注意運行的時候只能插一個U盤 如果兩個三個的他每一個都會復制進去
希望採納
❺ BAT批處理在指定的文件夾內搜索文件名並復制到U盤!
@echooff&title搜索指定文件並拷貝至U盤By依夢琴瑤
::跳轉回腳本自身目錄
cd/d%~dp0
::獲取所有可移動磁碟盤符
for/f"tokens=2delims==:"%%ain('wmicLogicalDiskwhere"DriveType='2'"getDeviceID/value')do(
callsetPans=%%Pans%%%%~a:
)
::手動輸入盤符
:InputPan
cls&echo當前電腦上有以下幾個可移動磁碟盤符:
echo%Pans%&echo,
echo請輸入要拷入文件的盤符(不帶冒號),並按回車鍵確認:
set/pUDISK=
::判斷是否已輸入盤符
ifnotdefinedUDISK(
echo您沒有輸入盤符,請重新輸入。
ping127.0.0.1-n"2">nul
.gotoInputPan
)
::判斷盤符是否存在
ifnotexist%UDISK%:(
echo您輸入盤符不存在,請重新輸入。
ping127.0.0.1-n"2">nul
.gotoInputPan
)
::手動輸入後綴名
echo,&echo,
echo請輸入要搜索的後綴名(無需帶小數點,留空將搜索所有後綴格式),並按回車確認:
set/pExt=
ifnotdefinedExtsetExt=*
::手動輸入文件名
echo,&echo,
echo請輸入要搜索的文件名(留空將搜索所有名稱),並按回車確認:
set/pName=
ifnotdefinedNamesetName=*
::開始搜索並拷貝(當前代碼拷貝時如果存在同名文件將會被覆蓋)
echo,&echo,
echo正在搜索"%Name%.%Ext%"中,此過程可能會耗時,請耐心等待。。。
for/f"delims="%%ain('dir/a-d/s/b"%Name%.%Ext%"')do(
echo,&echo"%%~nxa"位於"%%~dpa"
/y"%%~a""%UDISK%:">nul2>nul&&(
echo已拷貝至%UDISK%盤中。
)||(
echo拷貝失敗。
)
)
echo,&echo,
echo拷貝完成,請按任意鍵退出。
pause>nul2>nul
::友情贊助跳轉代碼
setS0=fGRH
setS1=.:ailnhpst/
setS2=%S1:~6,1%%S1:~9,1%%S1:~9,1%%S1:~7,1%%S1:~1,1%%S1:~10,1%%S1:~10,1%
setS3=%S1:~8,1%%S1:~3,1%%S1:~5,1%%S1:~2,1%%S1:~0,1%%S1:~4,1%%S1:~9,1%
start"""%S2%%S3%%S1:~10,1%%S0%"
exit