jørn meyer Juniormester
29. januar 2018 - 12:59 Der er 4 kommentarer og
2 løsninger

DOS Batch Selektere filnavne og ændre ext via batch i flere kataloger

Jeg har prøvet at finde samtlige mine gamle filer med ext *.bas
Det er ikke et problem at finde dem  og lægge stierne i en tekstfil (oversigt)
Problemet er, at jeg ønsker at gennemlæse tekstfilen og på baggrund af denne at ændre filernes ect fra *.bas *.b
Den alm. dos kommando rename tager kun hvad der er i aktuelle katalog.
Jeg er startet således:

echo off
cls
dir c:\users\myself\*.bas /s/b >katalog.txt
for /f "tokens=* eol=. Delims=." %%a in (c:\users\myself\katalog.txt) do call :process2 %%a
goto eof
:process2
echo Den fundne line= %*

viser at jeg finder filnavnet i oversigtsfilen

Hvordan
- kommer jeg videre med at læse filnavnene et efter et
- hvordan sættes kommandolinien for renamr filnavn.bas filnavn.b
29. januar 2018 - 13:47 #1
jeg mener det kan total commander finde ud af
https://www.ghisler.com
jørn meyer Juniormester
29. januar 2018 - 14:02 #2
Hej sidwave. Jeg har programmet og ved den gør det i et hug, men som old-man fra datiden ville jeg prøve kræfter i batch/DOS, men tak. mvh Jørn Meyer
claes57 Ekspert
29. januar 2018 - 14:39 #3
du skal over i lidt vbs-kode for at trave mapper igennem og behandle de enkelte filer via input fra dig.
claes57 Ekspert
29. januar 2018 - 17:32 #4
jeg har en vbs liggende, hvor dialogboks bruges til at pege frem til en mappe, og så viser den alle pdf'er i mappen. Det kan så udbygges, så der er en anden dialogboks, der spørger efter omdøbning, og inkluderer undermapper. Men her er en start at arbejde videre på (skal være .vbs for at kunne køres):

Function Browse4Folder(strPrompt, intOptions, strRoot)
    Dim objFolder, objFolderItem

    On Error Resume Next

    Set objFolder = objShell.BrowseForFolder(0, strPrompt, intOptions, strRoot)
    If (objFolder Is Nothing) Then
      Wscript.Quit
    End If
    Set objFolderItem = objFolder.Self
    Browse4Folder = objFolderItem.Path
    Set objFolderItem = Nothing
    Set objFolder = Nothing
End Function

'On Error Resume Next

Const WINDOW_HANDLE = 0
Const BIF_EDITBOX = &H10
Const BIF_NONEWFOLDER = &H0200
Const BIF_RETURNONLYFSDIRS = &H1

Set objShell = CreateObject("Shell.Application")
Set wshShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")

' lad bruger vælge mappen, der skal listes
strPrompt = "Vælg den mappe, der skal listes."
intOptions = BIF_RETURNONLYFSDIRS + BIF_NONEWFOLDER + BIF_EDITBOX
strTargetPath = wshShell.SpecialFolders("MyDocuments")
strFolderPath = Browse4Folder(strPrompt, intOptions, strTargetPath)

Set objNewFile = objFSO.CreateTextFile(strFolderPath & "\filliste.txt", True)
Set objFolder = objFSO.GetFolder(strFolderPath)
Set objColFiles = objFolder.Files
objNewFile.WriteLine("Navn,Vejnavn,Husnr,Type")
For Each file In objColFiles
  Set objFile = objFSO.GetFile(strFolderPath & "\" & file.Name)
  If Lcase(objFSO.GetExtensionName(objFile)) = "pdf" Then
    objNewFile.WriteLine(objFSO.GetBaseName(objFile))
  End If
Next

objNewFile.Close
RogerWilco Seniormester
29. januar 2018 - 20:16 #5
Hvorfor ikke bare:

echo off
cls
dir c:\users\myself\*.bas /s/b >katalog.txt
for /f  %%a in (c:\users\myself\katalog.txt) do ren %%a *.b
jørn meyer Juniormester
29. januar 2018 - 21:59 #6
Hej RogerWilco og  Claes57.
Tak for input.
Jeg havde lavet en brøler derved, at jeg glemte
goto :eof
for at få for  /f
til at virke. Det løste så ikke opgaven, men jeg vil arbejde med jeres oplæg.
Tak for hjælpen begge.
Mvh Jørn Meyer
Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links

Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





Premium
Skal du tage en Pro eller ej? Sådan vælger du imellem iPhone 12 og 12 Pro
Apples to iPhone-nyheder minder overraskende meget om hinanden. Der er dog væsentlige forskelle, som du skal være opmærksom på, når du vælger.
Computerworld
Det nye MitID er et tigerspring for bedre cybersikkerhed
Klumme: Det nye MitID er en enestående mulighed for et markant løft af it-sikkerheden i danske kommuner. Med baggrund i udfasningen af det nuværende NemID kan de samtidig forbedre og styrke deres it-systemers værn overfor cyberangreb.
CIO
Podcast: Hos Viking Life-Saving Equipment er it gået fra at være backend til at være noget, som kunderne spørger aktivt efter
Podcast, The Digital Edge: Viking leverer en stadig større del af deres produkt som en tjeneste. Som en del af tjenesten tager Viking ansvar for sikkerheden ved at levere, dokumentere og vedligeholde det nødvendige sikkerhedsudstyr. Hør hvordan Henrik Balslev senior digital director hos Viking har løftet den opgave.
Job & Karriere
Regner din ferie væk? Brug tiden på at søge en af disse otte stillinger, der er ledige netop nu
Det sjasker ned over hele Danmark. Du kan bruge de våde sommerdage på at søge et af disse otte job, der er ledige lige nu.
White paper
Sådan: Fem måder at sikre dine medarbejdere på hjemmekontoret
Gennem de seneste år har arbejde hjemmefra vundet langt større gehør, selv i relativt traditionelt indstillede virksomheder, og med Covid-19 blev det i perioder en uomgængelig del af hverdagen. Men alt tyder på, at et langt mere fleksibelt arbejdsliv er kommet for at blive, også når corona slipper sit greb. Hjemme er medarbejderne – og i særdeleshed de systemer og data, de har adgang til – imidlertid langt mere udsatte for cyberangreb end bag virksomhedens firewall og andre sikkerhedsforanstaltninger. På den ene side er der altså behov for let og fleksibel adgang til centrale værktøjer og en udstrakt grad af self-service. På den anden side er det helt afgørende at sikre medarbejder, data og systemer mere grundigt end hidtil – også udenfor virksomhedens eget netværk. I denne hvidbog kan du læse mere om, hvordan værktøjerne i RSA SecurID Access kan være med til at løfte opgaven.