Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Im Dateinamen den ERSTEN Unterstrich durch Punkt ersetzen (immer drittes Zeichen)

Frage Entwicklung Batch & Shell

Mitglied: bugmenot2

bugmenot2 (Level 1) - Jetzt verbinden

30.09.2014, aktualisiert 22:03 Uhr, 1331 Aufrufe, 9 Kommentare, 4 Danke

Ich habe die Frage hier schon gestellt:

http://www.administrator.de/contentid/204849#comment-955153


jedoch bin ich mir nicht sicher ob das da noch jemand ließt !?


habe den Code übernommen und es funktioniert wunderbar

@echo off&setlocal
for %%i in ("C:\...\*_*") do (
set "neu=%%~ni"
for /f "delims=" %%j in ('call echo "%%neu:_=.%%"') do ren "%%~i" "%%~j%%~xi"
)


nur damit werden ALLE Unterstriche im Dateinamen durch Punkte ersetzt.

Ich würde dies aber nur für das dritte Zeichen benötigen. Also AB_CD_E.pdf wird AB.CD_E.pdf bzw. aus AB_CD_E.pdf wird AB.CD_E.pdf

Habe leider nur sehr begrenzte Kenntnisse und würde gerne wissen ob das geht? Es vereinfacht ja wahrscheinlich die Sache, dass es sich immer um das dritte Zeichen von links dreht!?



Bin für jede Hilfe dankbar!

Gruß
Mitglied: rubberman
LÖSUNG 30.09.2014, aktualisiert um 22:03 Uhr
Hallo bugmenot2,

ungetestet etwa so:
01.
echo off &setlocal 
02.
for %%i in ("C:\...\*_*") do ( 
03.
  for /f "tokens=1* delims=_" %%j in ("%%~nxi") do ren "%%~i" "%%j.%%k" 
04.
)
Grüße
rubberman
Bitte warten ..
Mitglied: bugmenot2
30.09.2014, aktualisiert um 20:58 Uhr
sehr geil, danke !!!!


edit:

zu früh gefreut.

er benennt sie korrekt um und lässt den zweiten unterstrich stehen. wenn ich jetzt aber nochmal drauf klicke, ändert er auch den zweiten unterstrich in einen punkt.

vllt. muss man irgendwie gezielt das dritte Zeichen bearbeiten?

edit 2:

habe was gefunden aber weiß nicht so recht wo ich es einbauen soll

IF [%var:~,3%] == [_] (SET var=.%var:~3%)

quelle: http://www.winfuture-forum.de/index.php?showtopic=134338
Bitte warten ..
Mitglied: rubberman
LÖSUNG 30.09.2014, aktualisiert um 22:03 Uhr
wenn ich jetzt aber nochmal drauf klicke, ändert er auch den zweiten unterstrich in einen punkt.
Natürlich. Dein Pattern ist "*_*", und solange das zutrifft, wird weiter geändert. Du musst also die Dateien ausschließen, bei denen irgendwo ein Punkt vor einem Unterstrich steht.
01.
@echo off &setlocal 
02.
pushd "C:\..." 
03.
for /f "delims=" %%i in ('dir /a-d /b "*_*" ^| findstr /rvc:"\..*_"') do ( 
04.
  for /f "tokens=1* delims=_" %%j in ("%%~nxi") do ren "%%~i" "%%j.%%k" 
05.
06.
popd
Grüße
rubberman
Bitte warten ..
Mitglied: bugmenot2
30.09.2014 um 21:36 Uhr
ok, danke. nur kurz zur erläuterung

pushd "C:\..." [was kommt hier für "..." hin? nur der ordnerpfad?]
for /f "delims=" %%i in ('dir /a-d /b "*_*" ^| findstr /rvc:"\..*_"') do ( [was würde dann hier bei ".." hinkommen?]


sorr, ich kenn mich mit dieser ganzen syntax null aus
Bitte warten ..
Mitglied: rubberman
LÖSUNG 30.09.2014, aktualisiert um 22:03 Uhr
pushd "C:\..." [was kommt hier für "..." hin? nur der ordnerpfad?]
Richtig.

for /f "delims=" %%i in ('dir /a-d /b "*_*" ^| findstr /rvc:"\..*_"') do ( [was würde dann hier bei ".." hinkommen?]
Das lässt du wie es ist. Die Hilfe zu FINDSTR verrät dir was das zu bedeuten hat, bzw. ich kann das Pattern auch kurz erklären:
\. Steht für einen Punkt
.* Steht für ein beliebiges Zeichen, das nicht, einmal oder mehrfach auftreten kann
_ Ist der Unterstrich
Normalerweise würde FINDSTR also genau solche Dateinamen finden, bei denen ein Punkt irgendwo vor einem Unterstrich kommt. Durch die Option /v wird die Logik aber umgekehrt und diese Dateien werden ausgefiltert.

Grüße
rubberman
Bitte warten ..
Mitglied: bugmenot2
30.09.2014 um 21:55 Uhr
ok. weil irgendwie will es nicht funktionieren.

es könnte natürlich sein dass jetzt irgendwo ein Tippfehler ist, aber mit meinen bescheidenen Kenntnissen wäre das die Nadel im Heuhaufen

geht es denn bei dir?
Bitte warten ..
Mitglied: rubberman
LÖSUNG 30.09.2014, aktualisiert um 22:03 Uhr
Ja, funktioniert bei mir. Der Grund warum es bei dir nicht funktioniert ist, dass ich bei meinem Test nicht tatsächlich umbenannt habe, sondern nur per echo ausgegeben habe, was passieren würde (... do echo ren ...). Ich schmeiß das echo oben mal aus dem Code ...

Grüße
rubberman
Bitte warten ..
Mitglied: bugmenot2
30.09.2014 um 22:03 Uhr
jetzt gehts. tausend dank!!
Bitte warten ..
Mitglied: rubberman
30.09.2014 um 22:15 Uhr
Gerne
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst For f - In vielen Dateien Komma durch Punkt ersetzen (2)

Frage von alleedx zum Thema Batch & Shell ...

Batch & Shell
Punkt durch Komma ersetzen (9)

Frage von TingelTangelbatch zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell - In Textdatei suchen und ersetzen (5)

Frage von Raaja89 zum Thema Batch & Shell ...

Windows Netzwerk
Windows Server 2003 SBS Netzwerk durch neuen Server Ersetzen (9)

Frage von MultiStorm zum Thema Windows Netzwerk ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (15)

Frage von liquidbase zum Thema Windows Update ...

DSL, VDSL
Problem mit variernder Internetgeschwindigkeit (12)

Frage von schaurian zum Thema DSL, VDSL ...