2014-04-29 151 views
2

我有成千上萬的文本文件格式類似的東西abcdefgh_20140430120000.txt複製和重命名文件與批處理文件

我想那些從一個文件夾複製到另一個文件夾一樣

xcopy "Y:\FolderA" "C:\FolderB" 

不過,我想刪除時間部分文件名,從而使文本文件看起來像abcdefgh_20140430.txt

誰能幫助我的代碼這樣做呢?

+0

你有沒有做過任何研究,這樣做你自己,就像至少做搜索嗎?它似乎沒有,因爲'x copy'不是一個有效的命令。搜索SO作爲'[batch-file]複製重命名文件'(正如我輸入它,包括'[]'括號一樣),並查看你能找到的內容。努力自己做,如果你無法獲得它能夠工作,你可以回過頭來問一個關於你遇到的問題的具體問題,包括你的努力,並且我們可以嘗試提供幫助,但是你需要首先做一些努力,祝你好運。 :-) –

+0

@KenWhite,我一直在尋找解決方案。 xcopy是一個命令,它可以工作。對不起,我留下了「x」和「copy」之間的空格。我還排除了我在複製時使用的開關,因爲它們不相關。我只需要幫助刪除除.txt以外的文件的最後6個字符。我可以處理一個單獨的文件,像'ren%fName%fName:〜0,-6%.txt',但需要某種循環。感謝您投票,雖然 – niemoy

+0

我沒有看到任何努力的跡象,並且這個問題有一個明顯不存在的命令(我提到的'x copy')。我提供的搜索詞有很多相關的問題;在問同樣的問題之前,我已經在這裏看到了幾個。 (另外,要小心的指責沒有證據,評論並不一定意味着downvote,除了downvote需要一個評論伴隨它。) –

回答

3

啓動這樣:如你所願,應該將它們拷貝和刪除文件名的最後6個字符。

文件名與他們!將產生一個錯誤。

@echo off 
setlocal enabledelayedexpansion 
for /f "delims=" %%a in ('dir *.txt /b /a-d ') do (
    set "name=%%~na" 
    copy "%%a" "C:\FolderB\!name:~0,-6!%%~xa" 
) 
+0

謝謝你的工作很棒!現在我可以添加一些東西來刪除文件名更長的文件? – niemoy

+0

在源文件夾中啓動它。 '/ b'給出一個簡短的目錄列表(嘗試命令'dir/b')和'/ a-d'(屬性減號目錄),如果它們存在,則從列表中刪除文件夾。 – foxidrive

+0

爲其他任務打開一個新問題。他們是免費的。 :) – foxidrive

3

你可以使用rename命令徹底擺脫了複製的文件名的不必要的部分。

copy "Y:\FolderA" "C:\FolderB" 
rename "C:\FolderB" "C:\FolderC" 

這應該工作,如果你有任何問題,然後告訴我,我會盡我所能來解決它​​:)

你也不需要在複製前的X,或至少因爲我使用的是Windows 8.1,所以我不需要它,如果這有什麼關係的話。在文件夾中

+0

謝謝@benimen。我成功地將文件夾中的文本文件從共享網絡驅動器複製到使用xcopy的本地驅動器。我遇到的挑戰是我無法通過刪除所有數千個文本文件的最後6個字符來縮短文件名。 – niemoy

+0

我也有這個問題,我會盡力解決它,只要我可以:) – benimen16

-1
COPY "C:PathOfFileToCopy\Filename" "C:PathOfCopyDestination\NewFilename" 

RENAME "C:PathOfFileToCopy\Filename" NewFileName 
+1

已經有很好的答案。應避免添加沒有描述的答案,甚至不解決問題 – jeb