2017-07-18 185 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