2012-10-10 157 views
1

我有數千個文件要移動。根據文件名將文件複製到目錄中

我已經使用了一個批處理文件來創建我需要的目錄。

我的文件名看起來像這樣:

  • 6711_05_12.pdf
  • 10504_06_15.pdf
  • 559_07_11.pdf

第一個字符,直到達到 「_」 是目錄該文件需要進入。啓動批處理文件 - 但不知道如何識別文件名。

@echo off 
setlocal EnableDelayedExpansion 
for %%I in (*.pdf) do (
xcopy ??? 
) 

是否有批處理文件的手冊?

回答

1

你甚至不需要批處理文件。下面的一行命令將會執行這個技巧。

for %I in (*.pdf) do @for /f "eol=_ delims=_" %A in ("%I") do @copy "%I" "%A" 

如果要將命令放到批處理文件中,只需將百分比加倍即可。

+0

命令行很棒!但是,將百分比加倍卻無法在批處理文件中使用。感謝您的幫助! –

+0

爲什麼'eol = _'?不會只是'定界= _'就夠了嗎?我的意思是,我只是想學習,我從未在腳本中使用過'eol'。 –

+0

@AndriyM - 因此,文件名以什麼字符開頭並不重要。默認的EOL是';',它在文件名中是有效的。這是極不可能的,但文件名可以以';'開頭。將EOL設置爲其中一個DELIMS字符可以有效地禁用EOL。 – dbenham

相關問題