我有不同的文件夾,例如:a,b,c等,每個文件夾有不同的文件,例如:x,y,z等。 文件x,y,z位於每個文件夾中。有沒有辦法使用單個命令從不同文件夾複製每個文件?我希望結果是來自所有文件夾的x文件在一個文件夾中。使用DOS複製多個文件
如:XCOPY/S X * * C:\文件夾
可以從不同的文件夾複製所有的X文件。如何使用單個命令從不同文件夾複製x,y,z?謝謝
我有不同的文件夾,例如:a,b,c等,每個文件夾有不同的文件,例如:x,y,z等。 文件x,y,z位於每個文件夾中。有沒有辦法使用單個命令從不同文件夾複製每個文件?我希望結果是來自所有文件夾的x文件在一個文件夾中。使用DOS複製多個文件
如:XCOPY/S X * * C:\文件夾
可以從不同的文件夾複製所有的X文件。如何使用單個命令從不同文件夾複製x,y,z?謝謝
您必須在批處理文件中或直接從cmd中使用'for'。
for %I in (file1.txt file2.txt file3.txt) do xcopy\s %I c:\somedir\
不是文件名,你可以給不同的文件的絕對/相對路徑不同的文件夾
或者,如果使用DOS for循環:'for %% i in(file1.txt file2.txt file3.txt)do(xcopy/s %% i .. \ somedir)' – Underverse
在有沒有辦法在DOS下一個命令來做到這一點。你需要的是一個如下所示的腳本。這可以在你正試圖從收集,這樣樹的根文件夾執行:
batch.bat x*.*
將收穫所有匹配的X文件*當前目錄及其所有子目錄,遞歸。他們將被以這種格式保存:
folder1\x1.txt - > folder1x1.txt
folder2\x5.txt - > folder2x5.txt
folder3\x1.txt - > folder3x1.txt
下面是代碼:
@echo off
FOR /F "delims=" %%I IN ('DIR .\%1 /B /AA /S') DO (CALL :COPYFILE %%I)
GOTO END
:COPYFILE
set "ofn=%~1"
set "fn=%~1"
call:MakeRelative fn
set fn=%fn:\=%
set fn=%fn::=%
copy %ofn% %fn%
goto:eof
:MakeRelative file base -- makes a file name relative to a base path
:: -- file [in,out] - variable with file name to be converted, or file name itself for result in stdout
:: -- base [in,opt] - base path, leave blank for current directory
:$created 20060101 :$changed 20080219 :$categories Path
:$source http://www.dostips.com
SETLOCAL ENABLEDELAYEDEXPANSION
set src=%~1
if defined %1 set src=!%~1!
set bas=%~2
if not defined bas set bas=%cd%
for /f "tokens=*" %%a in ("%src%") do set src=%%~fa
for /f "tokens=*" %%a in ("%bas%") do set bas=%%~fa
set mat=&rem variable to store matching part of the name
set upp=&rem variable to reference a parent
for /f "tokens=*" %%a in ('echo.%bas:\=^&echo.%') do (
set sub=!sub!%%a\
call set tmp=%%src:!sub!=%%
if "!tmp!" NEQ "!src!" (set mat=!sub!)ELSE (set upp=!upp!..\)
)
set src=%upp%!src:%mat%=!
(ENDLOCAL & REM RETURN VALUES
IF defined %1 (SET %~1=%src%) ELSE ECHO.%src%
)
EXIT /b
:END
希望這有助於!
嗯......你如何期望把多個文件同名到一個目標文件夾中?這根本無法完成。如果您希望文件共存於一個文件夾中,則文件必須重新命名或合併。 – dbenham