DOS-skript för att byta namn på filer

Om det finns flera filer i ett dokument som en användare skulle vilja ändra förlängningen av, kan individen använda ett parti-kommando, vilket ändrar utvidgningen av alla liknande filer till önskad fil. Om man till exempel vill ändra filer med en förlängning av .avi till .bmp, skulle man behöva ge två argument med "från" tillägget och "till" -tillägget. Om filnamnet är test.bat ska kommandot se ut så här: test * .avi * .bmp. Detta kommando kommer att ändra alla .avi-förlängningsfiler till .bmp-tilläggsfiler. Alternativt kan du ladda ner bitskrivning från biterscripting.com för att ändra filtillägg.

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.

Tidigare Artikel Nästa Artikel

Bästa Tipsen