Wie kann ich eine Stapeldatei erstellen, die nur bestimmte Zeichen aus den Dateinamen entfernt? Ist es möglich, in einem Skript zu tun? Ich suche, diese Symbole zu entfernen:Umbenennen von Dateien zum Entfernen bestimmter Zeichen
Antwort
Lassen Sie mich Ihnen vorstellen Ruby, eine Skriptsprache viel mächtiger und einfacher zu lernen als die M $ Alternative Powershell. Den Windows-Interpreter finden Sie unter http://rubyinstaller.org/ Ich könnte Ihnen den Code in einer Zeile geben, aber zur Verdeutlichung hier ein 4-Zeilen-Programm, das tut, was Sie brauchen.
Dir['c:/temp/*.package'].each do |file|
new_name = File.basename(file.gsub(/[({\[}\])+-]/, ''))
File.rename(file, new_name)
end
Lassen Sie mich erklären, aufzählt der Dir-Befehl den Pfad mit Wildcards in Unix-Notation nach innen, mit Schrägstrichen statt Schrägstriche und für jede Datei, um sie, indem sie die Basisnamen (nur Dateinamen) ein new_name erzeugen des Pfades und mit ein Regulärer Ausdruck zum Ersetzen (gsub) der Zeichen innerhalb des/[]/durch den zweiten Parameter, '' (leere Zeichenfolge). Reguläre Ausdrücke sind der Weg für solche Dinge, viele Informationen zu google, wenn Sie mehr darüber wissen wollen. Schließlich benutze ich die Utility-Klasse Datei (ja Ruby ist völlig objektorientiert), um die Datei in den neuen Namen umzubenennen.
Sie könnten dies mit jeder Sprache tun, aber ich wette nicht so klar und lesbar wie in Ruby. Installieren Sie den Ruby-Interpreter, speichern Sie diese Zeilen in zB cleanup.rb, ändern Sie den Pfad zu Ihrem und starten Sie ihn mit ruby cleanup
oder nur cleanup
, wenn Ihre Erweiterung korrekt zugeordnet ist.
Diese umbenennt
c:\temp\na({[}])+-me.package
zu
c:\temp\name.package
Und als Bonus: hier die eine Zeilenversion, die gleich im aktuellen Ordner der Fall ist.
Dir['*'].each {|f| File.rename(f, File.basename(f.gsub(/[({\[}\])+-]/, '')))}
Die Windows-Befehl cmd.exe Befehl Umbenennen Befehl fehlt die Macht zu tun, was Sie brauchen. Dies kann mit dem PowerShell-Befehl Rename-Item mit dem Operator -Replace
mit einem regulären Ausdruck erfolgen.
Die Ausführung von PowerShell-Skripts ist jedoch durch Sicherheitsrichtlinien eingeschränkt. Daher ist es als Cmd-Batch-Skript. Eine Skriptsprache wie Python ist möglicherweise weniger problematisch.
Ruby ist der einfachere Pfad vs Python, sicherlich, wenn Sie nur Erfahrung mit Batch haben – peter
@peter: Ziemlich wahrscheinlich so; Ich sagte nur "wie" - ich kenne keine Sprache besonders gut - es war nur ein Beispiel. Ich würde es persönlich in C++ tun, nur weil das die Sprache ist, die ich am besten kenne und täglich benutze, damit es schneller wäre. Die beste Sprache für schnelle Jobs ist oft die, die Sie bereits kennen, oder die, für die Sie Tools installiert haben, und nicht unbedingt die für diese Aufgabe am besten geeignete Sprache. – Clifford
Sie sind so richtig. Aber das ist beim OP nicht so, je leichter und nachvollziehbarer, desto besser würde ich denken. – peter
Der Ausgang
C:\Users\User>(
Set FName=test()[]{}+-
Set FName=!Fname:(=!
Set FName=!Fname:)=!
Set FName=!Fname:{=!
Set FName=!Fname:}=!
Set FName=!Fname:[=!
Set FName=!Fname:]=!
Set FName=!Fname:+=!
Set FName=!Fname:-=!
Echo Ren test()[]{}+-.asc !Fname!.*
)
Ren test()[]{}+-.asc test.*
Die Batch-Datei
SetLocal EnableDelayedExpansion
for %%A in (*.asc) Do (
Set FName=%%~nA
Set FName=!Fname:^(=!
Set FName=!Fname:^)=!
Set FName=!Fname:{=!
Set FName=!Fname:}=!
Set FName=!Fname:[=!
Set FName=!Fname:]=!
Set FName=!Fname:+=!
Set FName=!Fname:-=!
Echo Ren %%A !Fname!.*
)
- 1. Umschreiben einer URL zum Entfernen bestimmter Zeichen
- 2. Script zum Umbenennen von Dateien - Entfernen dash Zeichen von Android-Ressource-Dateien
- 3. Bash zum Umbenennen bestimmter Dateitypen im Verzeichnis
- 4. Entfernen bestimmter Zeichen
- 5. Entfernen bestimmter Zeichen aus NSString
- 6. Batch Umbenennen von Dateien vor bestimmten Zeichen
- 7. Regex zum Entfernen bestimmter Zeichen aus der Zeichenfolge
- 8. Bash-Skript zum Umbenennen von Dateien
- 9. Windows Batch-Skript zum Umbenennen von Dateien
- 10. Umbenennen von Dateien von Shell durch Entfernen Buchstaben
- 11. Entfernen bestimmter Zeichen in einer Zeichenfolge
- 12. Batch umbenennen von Dateien mit internationalen Zeichen unter Windows XP
- 13. Umbenennen von mehreren Dateien
- 14. C# string.replace zum Entfernen von ungültigen Zeichen
- 15. Umbenennen von Dateien in PHP?
- 16. Dateien umbenennen, Python/Jython
- 17. Umbenennen von Dateien node.js
- 18. Umbenennen von Dateien nacheinander
- 19. Batch-Datei: Umbenennen von Dateien mutiple
- 20. URL-Rewrite zum Ausschließen bestimmter HTML-Dateien
- 21. Verwenden von PHP zum Umbenennen von Dateien mit Leerzeichen
- 22. Bash Umbenennen von Dateien Entfernen zufälliger Zeichenfolge zwischen bestimmten Zeichenfolgen
- 23. Batch Umbenennen von Dateien Suffix nach „.csv“ entfernen
- 24. Umbenennen (oder Entfernen von Präfix) mehrere Dateien zu jeder Nummer
- 25. Formatieren von Datumsvariablen zum Entfernen unerwünschter Zeichen
- 26. Verwenden von Microsoft.TeamFoundation.VersionControl.Client zum Herunterladen bestimmter Dateien von einer VersionSpec
- 27. Umbenennen von Dateien über Skript
- 28. Bash Regex Dateien umbenennen
- 29. Django S3Direct Umbenennen von Dateien
- 30. Erstellen einer Stapeldatei zum Umbenennen von TXT-Dateien basierend auf Inhalt (Entfernen unangemessener Syntax)
Das meiste, was Sie geschrieben haben, ist irrelevant, was Sie eigentlich wollen; Ich schlage vor, dass Sie die Waffel entfernen und einfach fragen * "Wie benenne ich eine Gruppe von Dateien im Stapel um, indem ich einzelne Zeichen in der Menge lösche" ({[}]) + - '?" * – Clifford