DOS-skript för att byta namn på filer
Problem
Jag skulle vilja veta vilka satskommandon jag kan använda för att byta namn på filer i katalogen heter \ gbr1w001data_transfer_gb77 $
INVPRT_5023949000004_20080818061329_0000979.GB ---> 5023949000004_MSG_IN_20080818061329_0000979.GB PPRHDR_5000119000006_20080721061424_00000981.GB_m ---> 5000119000006_MSG_IN_20080721061424_00000981.GB_m SLSRPT_5023949000004_20080721061317_00000978.GB ---> 5023949000004_MSG_IN_20080721061317_00000978.GB
I grund och botten skulle jag vilja släppa 7 tecken i början av filen och infoga MSG_IN_ efter nästa 14 tecken.
Snälla hjälp!
Lösning
För
/ r %% x in (% 1) gör ren "%% x"% 2
Detta kommer att omdöpa filen rekursivt :-)
- Spara i en fil ge 2 argument från tillägg och till tillägg.
- ex: filnamn är test.bat
- kommando: test * .avi * .bmp
Det byter namn på alla filer med tillägg avi till bmp (i alla undermappar).
Lösning 2
Följande bitskrivningsskript kommer att göra just det. För att ladda ner bitskrivning gratis, gå till deras hemsida på biterscripting.com
Spara skriptet i en fil som heter C: /X.txt. Starta bitarscripting interaktivt och ring scriptet exakt som följer:
skript "C: /X.txt" dir ("\ gbr1w001 \ data_transfer_gb77") mönster ("INVPRT_")
Alla dir, filnamn, mönster är exempel, använd din egen.
Du kan ringa det här skriptet på vilket mönster du beskriver. Eller du kan skapa ett huvudskript för att repetitivt kalla det här skriptet för varje mönster. Du kan göra detta i satsläge genom att ringa biterscripting
från ett annat program eller DOS.
stex = strängutdragare, chex = teckenutdragare, haka = teckeninsättare, -p = bevara originalsträng, ] = upp till och med osv. Gör en hjälp på kommandon för att få detaljerna. Dessa är ganska kraftfulla editorkommandon.
Sen
# START SKRIV # Förklara inmatningsargument. var str dir mönster # Samla en lista över filer som matchar mönstret. var str lista hitta -f $ mönster $ dir> $ list # Listan med filer finns i $ lista. Process en åt gången. medan ($ list "") gör # Hämta nästa fil. var str fil, sökväg, old_name, new_name lex "1" $ list> $ file # Ta bort sökvägen. Detta ger oss bara filnamnet i $ old_name. stex -p "^ / ^ l [" $ file> $ old_name # Efter (men exklusive) den sista / # Släpp de första 7 tecknen. chex -p "7]" $ old_name> $ new_name # Sätt in MSG_IN_ efter 14 tecken. haka "14" "MSG_IN_" $ new_name> null # Vi använder> null eftersom vi inte vill se produktionen # Vi vill infoga MSG_IN_ i $ new_name (sålunda ingen -p-alternativ). skript SS_SlashBack.txt ospath ($ file)> $ file # Byt namn på $ file till $ new_name system byt namn på $ file $ new_name # END OF SCRIPT
Notera
Tack till satya för detta tips på forumet.