Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Rename via bat fil

Postades av 2004-12-13 15:33:21 - Torfi Ingolfsson, i forum visual basic - allmänt, Tråden har 6 Kommentarer och lästs av 903 personer

Hur skulle de kunna se ut om man skulle vilja ha ett rename kommando i en bat fil
ex.
minapp.exe -C:\Program
så döper den om alla filer i katalogen med filnamn.txt till filnamn"DatumTid".txt

är inte så värst duktig på programering men har behov av funktionen och hittar ingen annan lösning.

//Torfi


Svara

Sv: Rename via bat fil

Postades av 2004-12-14 07:58:10 - Bertil Rundquist

Såg att det redan låg en post i nybörjarforumet. där verkade det löst.
Tog bort min rysslösning:)

/B


Svara

Sv: Rename via bat fil

Postades av 2004-12-14 10:04:31 - Marcus Gus

<b>Hur skulle de kunna se ut om man skulle vilja ha ett rename kommando i en bat fil</b>

Antar att du faktiskt vill ha en batfil trots att du skriver i VB-delen...

Det är faktiskt enkelt:
Kolla upp FOR kommandot som du kan köra, hjälpen skriver du till en fil genom att köra "for /? >> forhelp.txt" i en kommandoprompt. Där ser du precis hur en sådan fungerar.

Genom att köra "FOR /f %i in ('dir /b *.*') DO echo %i" i en kommandoprompt så listar du alla filnamn som finns.

<info>
FOR /f %%i in ('dir /b *.*') DO (
FOR /f "tokens=1,2 delims=." %%m in ("%%i") DO (
rename "%i" "%mdatumtid.%n"
)
)

)
</info>

OBS, du skall använda enkla % när du kör ifrån en prompt och dubbla om du lägger koden i en batfil...


Skulle du istället skriva
<info>
FOR /f %%i in ('dir /b *.*') DO (
FOR /f "tokens=1,2 delims=." %%m in (%%i) DO (
rename "%i" "%mdatumtid.%n"
)
)

)
</info>

så skulle du gå igenom varje rad i filen %%i.

OBS, detta är exempel på hur man skulle kunna göra och allt är inte gjort i svaret...


<info>
FOR /f %%i in ('dir /b *.*') DO (
FOR /f "tokens=1,2 delims=." %%m in ("%%i") DO (
if exists %%m.%%n (
@echo %%m %%n
pause
)
)

)
</info>
Listar varje fil med namnet och ändelsen separerade och pausar mellan varje fil.

Det som INTE finns är tex att kontrollera så att enbart filer visas (dir /b /a:-d *.* fixar iofs det) och att de innehåller "." som används som delimiter. hänsyn tas ej heller till om det finns flera "." i filnamnet(loppa.min.txt kommer att bli loppaDTAUMTID.min.txt) mm.






Svara

Sv: Rename via bat fil

Postades av 2004-12-14 11:27:27 - Pelle Johansson

Eftersom du säger att du inte är såvärst duktig så har VB ett kommando inbyggt som du kanske vill titta på. Det heter "NAME".

Så testa kommandot Name "c:\*.bat", "*.txt"


Svara

Sv:Rename via bat fil

Postades av 2004-12-14 12:53:49 - Marcus Gus

<b>Så testa kommandot Name "c:\*.bat", "*.txt"</b>

Fusklösning ju... ;-)
Han skrev ju att han ville ha det i en batfil och där fungerar inte name(iaf inte på den NT4 burk jag sitter på just nu). Däremot skulle man kunna använda "rename *.txt *DatumTid.txt" eller kanske rentutav "rename *.* *DatumTid.*"(lite osäker på om den andra lösningen faktiskt fungerar). Det skript som jag har ovan struntar i vilka filändelser filerna har och tar alla filer i en katalog.

<info>
@echo off

goto start
*******************************************************************
* En batfil som döper om filer.... *
* Börjar med att sätta aktuellet datum till en variabel och tidpunkt till en variabel. *
*******************************************************************
:start

FOR /f "tokens=1,2,3,4,5 delims=/ " %%i in ('date /t') DO (
set mydate = %%l%%k%%j
)

FOR /f "tokens=1,2 delims=:" %%i in ('TIME /t') DO (
set mytime = %%i%%j
)

FOR /f %%i in ('dir /b *.*') DO (
FOR /f "tokens=1,2 delims=." %%m in ("%%i") DO (
rename %%i "%%m%mydate%%mytime%.%%n"
echo "Name change on %%i to %%m%mydate%%mytime%.%%n"
)

)

goto end

:end
@echo on
</info>

OBS, jag har inte teskört den men i stort sett borde den fungera... ;-)

Varför göra det enkelt för sig när man kan göra det med batfiler som är så mycket roligare? ;-)

Edit: Insåg att jag i min iver när jag läste order batfil tolkade allt fel... Han vill ha ett program som tar en inparameter (sökväg till katalog) och som kan startas från kommandoprompt eller batfil. :-(
Roligare med bat ju... ;-)

Men eftersom bat är kul så fixas lösningen till enligt nedan.

<info>
@echo off

goto start
*******************************************************************
* En batfil som döper om filer.... *
* Börjar med att sätta aktuellet datum till en variabel och tidpunkt till en variabel. *
*******************************************************************
:start

FOR /f "tokens=1,2,3,4,5 delims=/ " %%i in ('date /t') DO (
set mydate = %%l%%k%%j
)

FOR /f "tokens=1,2 delims=:" %%i in ('TIME /t') DO (
set mytime = %%i%%j
)


pushd %1

FOR /f %%i in ('dir /b *.*') DO (
FOR /f "tokens=1,2 delims=." %%m in ("%%i") DO (
rename %%i "%%m%mydate%%mytime%.%%n"
echo "Name change on %%i to %%m%mydate%%mytime%.%%n"
)

)

goto end

:end
popd
@echo on
</info>


Detta innebär:
1. batfilen kan startas utan parametrar och körs då i aktuell katalog
2. batfilen kan startas från kommadoprompt eller en annan batfil med mybat.cmd "c:\temp"

Vill man göra en funktion som tar i underliggande kataloger är det enkelt att lägga till en till FOR-loop som tar "dir /a:d /b" som kommando.


Svara

Sv: Rename via bat fil

Postades av 2004-12-15 14:10:38 - Johan Forsberg

1337! Skönt att någon fortfarande bevarar det!


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 718
27 958
271 751
3 261
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies