2016-10-13 29 views
1

我需要重命名在根據文件夾名稱我的文件的批處理文件。創建一個批處理文件重新命名了一些文件

例如,我有這個文件夾:

E:\PROGET\01_Progetti\1_TRATTATIVE\IT.16.9291_Fabbricato ad Milano (MI) - Ing. Bianchi\03-CALCOLO\02-XLS\ 

其中包含

CB-Tech_92XX - .xls 
Punz_92XX - .xls 

我想將它們重新命名爲

CB-Tech_9291 - .xls 
Punz_9291 - .xls 

這可能嗎?

編輯:

我發現從一個人誰問的代碼,並沒有得到任何抱怨Rename all files in a directory with a Windows batch script

我已經改變了它一點點這樣的代碼:

@echo off 
setlocal enableDelayedExpansion 
for %%F in (*92XX*) do (
set "name=%%F" 
ren "!name!" "!name:92XX=9XXX!" 
) 
@pause 

現在我只需要了解如何獲取路徑(完成),只提取數字(尚未)和存儲在變量(完成)。

要設置一個變量應該是類似的東西

set "number=projectnumber" 
SET mypath=%~dp0 

確定現在我的道路,需要IT.16後僅提取4個字符。

之後將編輯:)

編輯2:

@echo off 
setlocal enableDelayedExpansion 

SET mypath=%~dp0 

set projectnumber=%mypath:~41,4% 


for %%F in (*92XX*) do (
    set "name=%%F" 
    ren "!name!" "!name:92XX=%projectnumber:~0%!" 
) 


@pause 

YEAH!這適用於這個特定的文件夾!

現在我只需要了解如何搜索和提取路內的數量,使之更加普遍。

我在尋找返回字符串IT.16的第一個字符的位置的功能。 有什麼建議嗎?

+0

哇,你太逗了! –

+0

我只是想展示你的問題具體是什麼;請閱讀幫助主題[我該如何提出一個好問題?](http://stackoverflow.com/help/how-to-ask) – aschipfl

+0

你只是想要惹我。你不明白2行的問題?不要回答。 downvote我的目的是什麼?你可以寫「你可以更具體一點嗎?」晚安先生,謝謝你的貢獻 –

回答

0

這是這個問題的完整的解決方案:

@echo off 
setlocal enableDelayedExpansion 

SET mypath=%~dp0 
set "projectnumber=%mypath:*IT.16.=%" 
set "projectnumber=%projectnumber:~,4%" 

for %%F in (*92XX*) do (
    set "name=%%F" 
    ren "!name!" "!name:92XX=%projectnumber:~0%!" 
)