有兩個方面我需要一些指導,但不確定這是否可行。請注意,下面的代碼按預期工作。使用批處理文件根據文件名創建文件夾和可選子文件夾
@echo off
setlocal
set "sourcedir=C:\FILETEST"
pushd %sourcedir%
for /f "tokens=1,2*delims=-" %%a in (
'dir /b /a-d *-*--*.*'
) do if "%%c" neq "" (
md "%%a-%%b"
move "%%a-%%b--%%c" ".\%%a-%%b\"
)
popd
goto :eof
上面的代碼爲迎合文件名有一個「 - 」和「 - 」,例如文件名「英國倫敦 - filename.doc」將創建一個文件夾「英國倫敦」,並把文件在那裏。
但是,還有其他更詳細的文件名,例如文件名「EU-UK - London-Camden - filename.doc」。下面的腳本適用於本例中,將創建一個文件夾「EU-UK」,然後一個子文件夾「在倫敦的卡姆登」,並把那裏的文件:
@echo off
setlocal
set "sourcedir=c:\FILETEST"
pushd %sourcedir%
for /f "tokens=1,2,3,4*delims=-" %%a in (
'dir /b /a-d *-*--*-*--*.*'
) do if "%%e" neq "" (
md "%%a-%%b"
md "%%a-%%b/%%c-%%d"
move "%%a-%%b--%%c-%%d--%%e" ".\%%a-%%b\%%c-%%d\"
)
popd
goto :eof
是我遇到的第一個問題是,我需要使用這兩個腳本來瀏覽所有文件,有時候它是一個命中和錯過。有沒有辦法將這兩個腳本與「if exists」語句結合起來?
第二個問題和更多的問題是目前的分隔符設置爲「 - 」,我可以添加另一個分隔符,例如, 「_」?
謝謝,請讓我知道如果有任何問題。
帕諾斯