2015-04-22 188 views
1

需要一個批處理文件,它將實際檢查文件名是否在其名稱中包含「abc」,如果存在,那麼它將啓動一個副本。 因此,假設文件夾/測試有5個文件批處理文件複製文件

apt.text 
mar.text 
may.text 
Jan.text 
abc_xyx1234.text 

如此以來,「ABC」出現在字符串只在最後一個文件,它應該只挑最後一個。 我試過

@echo off 
for /f %%a in (' dir /b /a-d ^| find /v /i "abc" ') copy "%%a" 
pause 

但它沒有解決。

+1

請告訴我們你試過了什麼。 – zb226

+1

謝謝zb226 ..這裏是我試過的.. – rickepm

+0

@echo off for/f %% a in('dir/b/ad^| find/v/i「abc」') copy「%% a 「 pause – rickepm

回答

3

您的副本沒有目的地。

find /v /i會發現那些做/v)比賽abc

它可能更容易使用

copy *abc* destination 
0

我覺得你的問題的一部分filesnames如下:

即使正斜槓工作有時,Wi ndows的規範路徑分隔符是反斜槓\。使用正斜槓作爲路徑分隔符會混淆使用正斜槓作爲參數前綴的程序,並且大部分(如果不是全部)Microsoft Windows工具都這樣做,包括FINDFINDSTR

另外,如果你在談論/folder - 你談論的是當前驅動器的根目錄- 這應該\folder如上所述。我不確定你的意思。

除此之外,Magoo的建議仍然有效,但它省略了「問題」路徑。

因此,讓我們使用絕對目錄澄清:

我會假設你的源代碼目錄爲c:\work\source,幷包含文件中設置你在你的問題已經說。我會假設你的目標目錄是c:\stackoverflow\target。所以,你可以做從系統上任何位置如下:如果你

copy \work\source\*abc* \stackoverflow\target 

而且,:

copy c:\work\source\*abc* c:\stackoverflow\target 

如果你從任意文件夾上驅動c這樣做,你可以省略驅動器你可以使用Magoo的答案:

copy *abc* \stackoverflow\target