2017-07-18 221 views
0

有人在這個論壇上幫助我發展,從一個文件夾基於當月如下文件移動到另一個文件夾中的批處理文件:MOVE批量處理文件

::echo You were in %cd% ran from batch file "%~f0" 
pushd "%~dp0" 
::echo You are in now in %cd% 
::popd 

::@Echo off&SetLocal EnableExtensions EnableDelayedExpansion 
::Set "Dir1=C:\Directory1" 
::Set "Dir2=C:\Directory2" 

@Echo off&SetLocal EnableExtensions EnableDelayedExpansion 
set "Dir1=%cd%" 
::echo %Dir1% 
set "Dir2=%cd%" 
::echo %Dir2% 


:: Build Mon[01..12] array 
Set Cnt=100 
For %%A in (Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 
) Do Set /A Cnt+=1&Set Mon[!Cnt:~-2!]=%%A 
::Set Mon[ 

For /f "delims=" %%A in (
' Dir /B/A-D "%Dir1%\?-??-???? - * - *.pdf" ^|findstr "[01][0-9][0-3]  
[0-9] 20 [0-9][0-9]\.pdf$" ' 
) Do (
    Set "File=%%~nA" 
    Call Set "MoveTo=%Dir2%\!File:~-4!\%%Mon[!File:~-8,2!]%%\" 
    MD "!MoveTo!" >Nul 2>&1 
    Move "%%~fA" "!MoveTo!" 
) 

popd 

這個腳本的偉大工程但它沒有處理具有"符號的命名的文件,例如:'10"'

有人可以幫我修改這個腳本來處理這個符號。

enter image description here

提前感謝!

+0

請出示了'dir'的掛牌顯示在Windows中的問題 – Magoo

+1

文件名沒有與在名稱中引號沒有文件的樣本!? –

+0

我在原始文章中包含了文件名的屏幕截圖 – user396123

回答

0

允許在文件名中使用擴展字符U+201CU+201D。確保您的腳本是UTF8,然後嘗試使用這些字符。

" U+0022 Double quotation mark <= not this one  
「 U+201C Left double quotation mark 
」 U+201D Right double quotation mark