2016-11-14 127 views
0

我有大約10個批處理文件,它們將* .txt文件從根文件夾複製到其子文件夾。用於複製的代碼如下:批處理文件替換複製文件的文件名中的字符串

cscript ..\myScripts\CopyFiles.vbs "." "..\myScripts\Copy.cfg" "scripts_A" "((.+\.txt)|(.+\.ps1))" 

每一個批處理文件拷貝* .txt文件到具有相同名稱的文件夾(A.bat - > scripts_A,B.bat - > scripts_B)。我需要在每個子文件夾中有正確的文件名(文件夾scripts_A文件需要爲operationAfirst.txt,operationAsecond.txt,在文件夾scripts_B文件operationBfirst.txt,operationBsecond.txt中)。所以結果應該是如下:

for folder scripts_A: 
operationAfirst.txt 
operationAsecond.txt 
for folder scripts_B: 
operationBfirst.txt 
operationBsecond.txt 

所有*子文件夾中的.txt文件通常是對文件夾scripts_A * .txt文件的克隆。我只需要更新它們的文件名。是否有任何可能性如何編輯批處理文件,它可以替換用於文件夾scripts_B的批處理文件中的「B」文件名中的「A」字符串?

+0

我的腦袋捻轉:我有一批......我有大約10個批處理文件......顯示vbscript的參數。你不清楚你想要達到的目標。重命名要抽象的文件夾中的文件以查看要重命名的任何模式。 – LotPings

+0

好的,我會盡力解釋一下。我有10個批處理文件(A.bat,B.bat,C.bat .....,J.bat)。每個批處理文件將* .txt文件複製到具有相同名稱的文件夾(A.bat - > scripts_A,B.bat - > scripts_B)。正如您從我使用的腳本中可以看到的,我將所有* .txt文件複製到子文件夾。但我需要在每個子文件夾中具有正確的文件名(在scripts_A文件中需要operationAfirst.txt,operationBsecond.txt,在文件夾scripts_B文件operationBfirst.txt,operationBsecond.txt中)。我知道這有點混亂。 – 3georgo3

+0

請不要在評論中提供重要信息,但請編輯您的問題。爲什麼不用cmdline arg創建一個批處理文件來說明要使用哪個文件夾?文件名operationAfirst.txt是文字還是隻是一個抽象? – LotPings

回答

0

而不是修復設計不佳的設置的結果,我寧願給提示如何改變這種情況。因此,根據人們所知,此批將執行重命名:

@Echo off 
Setlocal 
CD /D X:\where\ever\you\start 
For %%A in (A B C D E F G H I J) Do For /F "delims=" %%B in (
    'Dir /B %CD%\Script_%%A\operation*.txt |Findstr /V "operation%%A"' 
) Do Call :RenFiles %%A "%%~fB" 
Goto :Eof 

:RenFiles 
Set OldName=%~nx2 
Set NewName=operation%1%OldName:~10% 
Echo Ren %2 %NewName% 

更改cd語句中的路徑。 堆棧for循環的第一個迭代字母A到J. 第二個執行文件夾script_(letter)中的dir,列出以操作和擴展名.txt開頭的所有 文件。 findstr 然後刪除此文件夾的所有正確名稱。 其餘然後參數調用的子程序

子程序建立由前綴操作 其次是文件夾信,並從第11位 (偏移10)原始名稱的新名稱。

只要回聲留在人的面前,它只顯示它會做什麼。

相關問題