的我的文件名包含有點標準化的前綴。通常,格式是yyyy-99999-xx
。如何批量基於列表(TXT)複製文件前綴
文件名的例子:
2015-12345-NY-0 Coney Island
2015-12345-NY-1 Coney Island
2015-54321-NY Coney Island
正如你可以看到,可以有包含相同字符1
通n
多個文件。我想通過搜索包含在.txt文件列表中的前綴來複制文件夾中的文件。
基本上,我想「細化/擴大」的Batch: Copy a list (txt) of files顯示的,以致file-list.txt
過程 - 我已經改爲Prefix-List.txt
- 僅包含文件的文件名「前綴」複製。我不得不改變XCOPY開關/K
以複製任何文件。
此外,我想錯誤重定向到Errors.txt
「很高興有」將被包括在搜索子文件夾。
使用我上面的文件名的例子:
2015
會複製3個文件。
2015-12345-NY
會複製2個文件。
2015-12345-NY-1
會複製1個文件。
這是我.bat文件
set src_folder=d:\JAR\source
set dst_folder=d:\JAR\destination
for /f "tokens=*" %%i in (File-list.txt) DO (
xcopy /K "%src_folder%\%%i" "%dst_folder%"
)
漁業部的解決方案正是我問。現在我想通過更改目標目錄名稱&添加一個日期時間前綴來擴展一點。
我有2個問題
1.如何獲得星期一= 08(而不是8月)?
2.什麼是MKDIR使用變量的語法?
下面是我使用的編碼(從Windows batch: formatted date into variable修改)。
@echo off
setlocal
for /f "skip=8 tokens=2,3,4,5,6,7,8 delims=: " %%D in ('robocopy /l * \ \ /ns /nc /ndl /nfl /np /njh /XF * /XD *') do (
set "dow=%%D"
set "month=%%E"
set "day=%%F"
set "HH=%%G"
set "MM=%%H"
set "SS=%%I"
set "year=%%J"
SET "DESTINATION=%%J%%E%%F%%G%%H%%I-EXTRACTION"
)
echo Day of the week: %dow%
echo Day of the month : %day%
echo Month : %month%
echo hour : %HH%
echo minutes : %MM%
echo seconds : %SS%
echo year : %year%
echo DESTINATION : %DESTINATION%
endlocal
MKDIR {"%DESTINATION%"}
只有粗略的樣子,如果這些都是前綴,那麼需要指定通配符。 'xcopy/K「%src_folder%\ %% i *」「%dst_folder%」)' – lit