2009-07-30 20:31:17 +0000 2009-07-30 20:31:17 +0000
126
126

Hoe kan ik massaal bestanden hernoemen?

Ik heb een aantal bestanden met een patroon 99 - DescriptiveName.txt en ik wil het nummer van de voorkant verwijderen zodat ik gewoon DescriptiveName.txt heb.

Hoe kan ik dit doen? Kan ik het vanaf de opdrachtregel doen of is er een hulpprogramma dat dit kan doen?

Antwoorden (22)

94
94
94
2009-07-30 20:58:54 +0000

Ik weet dat je in je titel “in dos” zegt, maar ik krijg de indruk dat je gewoon op zoek bent naar een manier om dit te doen en je afvraagt of dat de beste manier is.

De absolute beste tool die ik hiervoor heb gevonden is Bulk Rename Utility .

Het is geen opdrachtregeltool, maar ze hebben wel een opdrachtregelversie als je het echt op die manier wilt gebruiken.

Ik heb de GUI versie veel gebruikt, en het is zeer krachtig, zeer snel en uiterst eenvoudig te gebruiken.

Oh, en het is VRIJ voor persoonlijk gebruik.

60
60
60
2011-07-13 17:30:08 +0000

Een klein PowerShell-script:

$args | Rename-Item -NewName { $_.Name.ToLower() -replace '\d+ - ' }

In combinatie met complexere reguliere uitdrukkingen kan dit iets worden als:

ls | Rename-Item -NewName {$_ -replace '(\d+) - (.*).mp3', '$2 - $1.mp3' }

die dingen als ‘01 - Begin.mp3’ verandert in ‘Begin - 01.mp3’.

Gebruik de -WhatIf-parameter op Rename-Item om herbenamingen te controleren voordat je ze uitgeeft.

24
24
24
2009-08-07 17:21:40 +0000

AntRenamer maakt het vrij eenvoudig om een hernoemingspatroon te definiëren; er zijn er al genoeg voorbereid (en het geeft een voorproefje van de acties):

Gratis voor persoonlijk en commercieel gebruik.

24
24
24
2009-08-07 17:53:34 +0000

Als je echt de windows commandoregel wilt gebruiken (als je iets niet wilt downloaden), kun je het zo doen:

dir /B > fileList.txt
for /f "tokens=1,2,3" %i in (fileList.txt) DO ren "%i %j %l" %l

De eerste regel voert de lijst met bestanden uit in een bestand met de naam fileList.txt. De tweede regel scheidt elk van de namen in de lijst in 3 delen, de #, de “-” en de rest van de naam. Voor elk daarvan doet het het hernoemingscommando.

19
19
19
2009-07-30 21:24:47 +0000

oude school:

Je kunt een DIR doen en de uitvoer omleiden naar een bestand, zoals in DIR*.TXT >TEMP.BAT

Dan gebruik je een editor om te nemen wat je niet nodig hebt en wijzig je de onderdelen die je wel nodig hebt. Voeg een “@echo off” toe als bovenste regel, sla het op en voer het uit.

17
17
17
2014-03-18 01:33:41 +0000

Een andere optie: * Massive File Renamer **

Met deze optie kunt u eenvoudig ** meerdere bestanden en bestandsextensies hernoemen. Het is zeer snel en eenvoudig!

Voor gevorderde gebruikers en ontwikkelaars is het mogelijk om regelmatige expressies te gebruiken.

Zie het in actie:

13
13
13
2009-08-23 08:56:29 +0000

Ik gebruik Total Commander ’s multi-rename tool (ctrl+M) voor dit soort dingen. Hun handige tool, een van de vele om te tellen, is eenvoudig te gebruiken en kan indien nodig ook reguliere uitdrukkingen en sjablonen gebruiken. Oh, en het geeft je natuurlijk een voorproefje voordat je wijzigingen aanbrengt.

Dit is de derde of vierde vraag die ik heb beantwoord en die Total Commander aanbeveelt… Ik zou van hen een opdracht moeten krijgen ;-)

11
11
11
2009-07-30 22:11:57 +0000

Het gereedschap waar ik tevreden mee ben, is ReNamer . Het ondersteunt ook het opslaan van hernoemingsregels, wat voor mij nuttig is geweest, omdat ik vaak dezelfde hernoemingen doe.

Hieronder staat een voorbeeld van het verwijderen van tekst voor het eerste streepje, maar er zijn veel andere regels die je kunt definiëren.

5
5
5
2009-11-27 23:02:30 +0000

Ik heb hiervoor Free Commander Portable (freeware) gebruikt:

  1. 2. Selecteer of navigeer naar de bestanden of mappen om te hernoemen. 2. Druk op
4
4
4
2013-01-03 10:47:45 +0000

Voor gevorderde gebruikers en ontwikkelaars zou ik RegexRenamer .

Pro’s:

  • Zeer eenvoudige UI;
  • Regelmatige uitdrukkingen die de ontwikkelaars kennen;
  • GPLv2;

Con’s:

  • Het is geen opdrachtregel! :)
3
3
3
2009-08-23 06:16:40 +0000

Hier is een command-line oplossing — een Java-programma dat ik speciaal heb geschreven om het gemakkelijk te maken om te werken met “patronen” in bestandsnamen. Het is gratis en open source, dus voel je vrij om het aan te passen:

RenameWand http://renamewand.sourceforge. net/

Enkele relevante gebruiksvoorbeelden:

Laat alles voor de "-" in de bestandsnaam vallen:

java -jar RenameWand.jar "<a> - <b>" "<b>"

Voorzie de bestandsnaam van een 3-cijferig nummer, sorteer op de laatst gewijzigde tijd:

java -jar RenameWand.jar "<a>" "<3|#FT> <a>"

Rangschik delen van de bestandsnaam, en verander de koffer:

java -jar RenameWand.jar "<album> - <artist> - <song>.<ext>" 
                          "<artist.upper> <album.title> - <song>.<ext.lower>"
3
3
3
2009-08-23 09:31:32 +0000

Ik ontdekte RenPhoric ongeveer een maand geleden. Schitterend. En het is vrij.

Geen ingewikkelde interface en ik was snel in staat om de naam te veranderen precies zoals ik wilde. Regular Expression geschikt. Heb sindsdien niets meer gebruikt.

3
3
3
2009-07-30 20:37:17 +0000

De eenvoudigste manier zou zijn om Rename Master te gebruiken.

2
2
2
2014-07-04 05:53:01 +0000
@echo off setlocal enabledelayedexpansion set X=5 set FOLDER\_PATH=. pushd %FOLDER\_PATH% for %%f in (\*) do if %%f neq %~nx0 ( set "filename=%%~nf" set "filename=!filename:~%X%!" ren "%%f" "!filename!%%~xf" ) popd

sla dit op in een batchbestand en voer uit

2
2
2
2013-03-30 20:17:45 +0000

Grappige naam- en opdrachtregeltool zeer krachtig, zeer snel en uiterst gebruiksvriendelijk. “Tekst zoeken en vervangen” FART http://fart-it.sourceforge.net/ WERKEN GROOT! kan ook woorden in txt-bestanden hernoemen.

USAGE

Usage: FART [options] [--] <wildcard>[,...] [find_string] [replace_string]

Options:
 -h --help Show this help message (ignores other options)
 -q --quiet Suppress output to stdio / stderr
 -V --verbose Show more information
 -r --recursive Process sub-folders recursively
 -c --count Only show filenames, match counts and totals
 -i --ignore-case Case insensitive text comparison
 -v --invert Print lines NOT containing the find string
 -n --line-number Print line number before each line (1-based)
 -w --word Match whole word (uses C syntax, like grep)
 -f --filename Find (and replace) filename instead of contents
 -B --binary Also search (and replace) in binary files (CAUTION)
 -C --c-style Allow C-style extended characters (\xFF&001\t\n\r\ etc.)
    --cvs Skip cvs dirs; execute "cvs edit" before changing files
 -a --adapt Adapt the case of replace_string to found string
 -b --backup Make a backup of each changed file
 -p --preview Do not change the files but print the changes
2
2
2
2013-11-04 09:58:24 +0000

Multi hernoem script is een open source alternatief voor Total Commanders Multi Rename tool die u via script zou kunnen aansturen. Het kan TC-plugins gebruiken voor metadata informatie. https://code.google.com/p/multi-rename-script/

2
2
2
2011-08-14 16:27:25 +0000

Ik hou van Cylog’s WildRename . Het is krachtig, maar toch gebruiksvriendelijk en heeft veel mogelijkheden:

  1. snel
  2. snaarmanipulatie
  3. tellers
  4. wildcards
  5. reguliere uitdrukkingen
  6. substitutie
  7. case-conversie
  8. logboekregistratie
  9. simulatie (tonen van de resultaten zonder ze daadwerkelijk toe te passen)

2
2
2
2012-09-10 15:11:39 +0000

Zoals @zdan hierboven, heb ik dit gedaan via de opdrachtregel (met behulp van “cmd.exe” in Windows). Het kostte wat knutselen voor mijn specifieke geval, maar een beetje onderzoek loste het op.

Net als zdan voerde ik de lijst uit naar een TXT bestand, waarna ik tokens en delims gebruikte om de bestanden dienovereenkomstig te hernoemen. In mijn geval begon ik met een lijst van bestanden met de naam:

name-01-02-2012.csv

Ik wilde dat het bestandsdatum gedeelte in y/m/d volgorde stond, met het “naam” gedeelte aan het eind zodat het als volgt zou luiden:

2012-01-02-name.csv

Om deze en-masse te doen, heb ik de volgende code gebruikt. Merk op dat wanneer je het op deze manier doet, alle delen van de bestandsnaam in aanmerking worden genomen, inclusief de extensie van “.csv”. Dat is me de eerste keer al te gek geworden.

dir /B > fileList.txt
for /f "tokens=1,2,3,4,5 delims=-." %i in (fileList.txt) DO ren "%i-%j-%k-%l.%m" %l-%j-%k-%i.%m

De tokens zijn de “delen” van de bestandsnaam, de delims zijn de scheidingstekens. Merk op dat ik in mijn geval 2 scheidingstekens had (een streepje en een punt).

kan me persoonlijk niets schelen voor de “Bulk Rename” app. Zoals anderen al hebben gezegd, is de GUI afschuwelijk en niet erg intuïtief. Met een beetje onderzoek en eenvoudige codering kunnen deze dingen veel mroe efficiënt en snel gedaan worden.

1
1
1
2014-12-01 02:56:58 +0000

Ik heb een hybride JScript/batch commandoregelprogramma ontwikkeld dat JREN.BAT heet en dat bestanden of mappen kan hernoemen door een reguliere expressiezoekopdracht uit te voeren en te vervangen op de namen. Het is een puur script dat op elke Windows machine vanaf XP-forward draait. Volledige documentatie is ingebed in het script.

In de veronderstelling dat JREN.BAT in uw huidige directory staat, of beter nog, ergens binnen uw pad, dan wordt uw hernoemingsopdracht triviaal.

jren "^\d+[-]+(.+)\.txt$" "$1" /i

of jren "^\d+[-]+(?=.+\.)" "" /fm "*.txt"

Er zijn vele opties, inclusief de /S optie die de hernoemingsopdracht recursief uitvoert op sub-directories.

1
1
1
2013-03-02 20:08:23 +0000

Ik gebruik Blackboard om cursussen op een universiteit te administreren. Wanneer ik een opdracht in massa download (in Blackboard, klik op de bovenkant van de beoordelingskolom, dan voegt Blackboard “opdrachtbestand downloaden” een heleboel extra dingen toe aan de bestandsnaam - waardoor de bestandsnaam vaak te lang is om geldig te zijn op Windows.

Hier is hoe ze eruit zien:

Recitation20Assignment_studentname_attempt_2013-03-01-20-03-09_Exercise28129.docx

En dit is wat ik wilde

studentname.docx

Dus ik gebruikte de aanpak die @zdan en @gtr1971 adviseerden, door het openen van een commandovenster op de map met de bestanden erin (CMD.EXE). Voer dan dit commando uit om alle bestandsnamen in een document te zetten.

dir /b >filelist.txt

Bewerk het document en verwijder mapnamen, etc.

Gebruik dit commando om de Blackboard toegevoegde bestandsnaam te vervangen door alleen de gebruikersnaam en de bestandsextensie.

for /f "tokens=1,2,3,4,5,6 delims=_." %i in (filelist.txt) do ren "%i _%j_%k_%l_%m.%n" %j.%n

Hoop dat dit ook iemand anders helpt.

1
1
1
2013-07-10 23:07:13 +0000

Hier is nog een eenvoudig programma genaamd File Attribute Changer dat u kunt gebruiken om bestanden te hernoemen. Het is een draagbaar programma, zodat u het op een USB-stick kunt dragen. http://www.softpedia.com/get/Desktop-Enhancements/Other-Desktop-Enhancements/File-Attribute-Changer.shtml

0
0
0
2015-03-18 00:47:18 +0000

Als je serieuze macht nodig hebt en bereid bent om het geld uit te geven… PowerGrep (http://www.powergrep.com/) is een van de krachtigste en meest veelzijdige tools op de markt… je kunt bijna alles hernoemen met PowerGrep… zelfs binair zoeken en vervangen… het is gemaakt door RegEx goeroe, Jan Goyvaerts .

Gerelateerde vragen

3
19
10
28
8