2015-06-26 62 views
0

我想用批處理文件重命名一些文件夾,但是我嘗試的所有東西都給我提供了語法錯誤。這是我目前有的:「move/ren」給出語法錯誤,我無法解決問題

for /d %%a in (%cd%\*.*) do call :moveandrename %%~nxa %%a 
. 
. 
. 
:moveandrename 
if exist %2\%1.pdf if exist %2\%1.xml move "%2" "%~dp0\export\_verarbeitet" 
ren "%~dp0\export\_verarbeitet\%1" "%1_verarbeitet_%date%_%time%" 

有什麼建議嗎?

+0

是那裏的路徑空間? – npocmaka

+0

嘗試引用您的文件名並使用'〜'去除引號。 '如果存在「%〜2 \%〜1.pdf」如果存在「%〜2 \%〜1.xml」' – rojo

+0

路徑中沒有空格... – Lukas

回答

0

我發現的bug ......

添加「%時間」文件夾名引起的語法錯誤,這是它如何工作的

mkdir export\1 
mkdir export\_verarbeitet 
rem.>export\1\1.pdf 
rem.>export\1\1.xml 
for /d %%a in (%~dp0export\*.*) do call :moveandrename %%~nxa %%a 
goto :eof 
:moveandrename 
if exist "%~2\%~1.pdf" if exist "%~2\%~1.xml" move "%2" "%~dp0export\_verarbeitet\" 
ren "%~dp0export\_verarbeitet\%1" "%1_verarbeitet_%date%" 
pause 
goto :eof 
+0

'%date%'和'%time%''可能包含文件名的非法字符,並且取決於區域設置。更好地使用[全局解決方案](http://stackoverflow.com/a/18024049/2152082) – Stephan