首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Windows 批處理:從列表文件讀取名稱並複製服務器共享文件夾

     編輯:程式設計綜合問答

需求場景

  • 服務器共享路徑:\\192.168.61.38\補丁
  • 本地列表文件:D:\BAT\1.txt,每行一個補丁文件夾名(如 01.exe、03.exe)。
  • 目標:按列表複製對應文件夾及其所有子文件到本地 D:\BAT,保持目錄結構。

批處理腳本實現

@echo off
rem ===== 配置區 =====
set "patch_dir=\\192.168.61.38\補丁"
set "work_dir=D:\BAT"
set "list_file=D:\BAT\1.txt"
rem ===================

if not exist "%work_dir%" mkdir "%work_dir%"

for /f "usebackq delims=" %%i in ("%list_file%") do (
    echo 正在複製: %%i
    rem /E 複製子目錄(含空) /I 目標視為目錄 /Y 覆蓋不提示
    xcopy "%patch_dir%\%%i" "%work_dir%\%%i\" /E /I /Y /Q
)

echo 複製完成。
pause

關鍵參數說明

參數作用
for /f逐行讀取文本文件
usebackq允許文件路徑含空格時用雙引號
delims=不分隔符,整行作為變量
xcopy /E複製目錄樹(含空目錄)
/I目標不存在時假定為目錄

進階增強

  • 添加錯誤日誌:2>>error.log 記錄失敗項。
  • 斷點續傳:檢查目標已存在則跳過(if not exist)。
  • 權限處理:若需域憑證,先用 net use \\192.168.61.38 /user:domain\user password 掛載。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved