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

2in1 Datei Verarbeitung

Frage Entwicklung Batch & Shell

Mitglied: batchnewbie

batchnewbie (Level 1) - Jetzt verbinden

04.01.2015, aktualisiert 20:22 Uhr, 693 Aufrufe, 4 Kommentare

Hallo, ich komme nicht weiter.
Ich möchte meine Batch so verändern, dass sie doppelt funktional läuft. Einmal per for /f Schleife wo Dateien eines Typs verarbeitet werden (zb. Umbenannt werden, funktioniert tadellos) und einmal nur für einzelner explizit ausgewählte Datei.
Die zu verarbeitende Datei wird dann per Drag & Drop auf die Batchdatei gezogen und so nur diese geändert.

Zweiter Punkt, kann man Die Bedingung auch per if not machen, so, dass man sich die goto erspart?
Meine versuchen sind irgendwie alle im Sande verlaufen

Dritter Punkt, kann man die for /f Schleife so verändern, dass die Verarbeitung außerhalb stattfindet, so, dass man den Code auch für die einzelne Datei Verarbeitung benutzten könnte (war jedenfalls meine erste Idee, wenn man etwas mehr zu verändern hat)?

Beispieldatei:
ABC_1234D.txt
ABC_12345X.txt

01.
@echo off & setlocal enabledelayedexpansion 
02.
cls 
03.
 
04.
set "Verzeichnis=%~dp0" 
05.
set "Typ=txt" 
06.
 
07.
pushd "%Verzeichnis%" 
08.
 
09.
if [%1]==[] ( goto loop ) else ( 
10.
    set "DateiName=%~n1" 
11.
    set NeueDateiName=!DateiName:~4,-1! 
12.
    ren "%~n1" "!NeueDateiName!" 
13.
    echo DateiName: !DateiName! ^> !NeueDateiName! 
14.
15.
pause 
16.
goto :eof 
17.
:loop 
18.
for /F "delims=" %%i in ('dir /b /a-d "*.%Typ%"') do ( 
19.
    set "DateiName=%%~ni" 
20.
    set NeueDateiName=!DateiName:~4,-1! 
21.
 
22.
    echo DateiName: !DateiName! ^> !NeueDateiName! 
23.
    ren "%%i" "!NeueDateiName!%%~xi" 
24.
    echo. 
25.
26.
popd 
27.
pause
Danke für die Hilfe
Mitglied: 114757
LÖSUNG 04.01.2015, aktualisiert um 20:24 Uhr
Moin,
z.B. so
01.
@echo off & setlocal 
02.
cls 
03.
set typ=txt 
04.
if [%1]==[] ( 
05.
   for %%i in ("%~dp0*.%Typ%") do ( 
06.
      call :process "%%i" 
07.
08.
) else ( 
09.
  call :process "%~1" 
10.
11.
pause 
12.
goto :eof 
13.
 
14.
:process 
15.
set "DateiName=%~n1" 
16.
set "NeueDateiName=%DateiName:~4,-1%%~x1" 
17.
echo DateiName: %DateiName% ^> %NeueDateiName% 
18.
ren "%~1" "%NeueDateiName%" 
19.
goto :eof
Gruß jodel32
Bitte warten ..
Mitglied: batchnewbie
04.01.2015, aktualisiert um 20:34 Uhr
Hallo,
exzellent, vielen Dank

Nachtrag: Verständnis-frage zu Zeile 16 das %~x1 steht für die Dateisuffix nehme ich an?
Bitte warten ..
Mitglied: 114757
LÖSUNG 04.01.2015, aktualisiert um 21:25 Uhr
Zitat von batchnewbie:
Nachtrag: Verständnis-frage zu Zeile 16 das %~x1 steht für die Dateisuffix nehme ich an?
Ja.

Noch als Ergänzung, wenn du möchtest kannst du auch hiermit mehrere Dateien gleichzeitig auf die Batch ziehen

01.
echo off & setlocal 
02.
cls 
03.
set typ=txt 
04.
if [%1]==[] ( 
05.
   for %%i in ("%~dp0*.%Typ%") do ( 
06.
      call :process "%%i" 
07.
08.
) else ( 
09.
  :next 
10.
  call :process "%~1" 
11.
  shift 
12.
  if "%~1" NEQ "" goto next 
13.
14.
pause 
15.
goto :eof 
16.
 
17.
:process 
18.
set "DateiName=%~n1" 
19.
set "NeueDateiName=%DateiName:~4,-1%%~x1" 
20.
echo DateiName: %DateiName% ^> %NeueDateiName% 
21.
ren "%~1" "%NeueDateiName%" 
22.
goto :eof
Bitte warten ..
Mitglied: batchnewbie
04.01.2015 um 21:26 Uhr
Hallo,
Dankeschön, das ist schon fast eine Luxusversion
Bitte warten ..
Ähnliche Inhalte
Server-Hardware
Kann wav Datei im Handy nicht öffnen (2)

Frage von Chrisch zum Thema Server-Hardware ...

Datenbanken
Access 2016 vertauscht Monat und Tag in meiner CSV Datei (1)

Frage von iGordon zum Thema Datenbanken ...

Windows Tools
Dbf. Datei ist beschädigt. Wie die Datei wiederherzustellen? (4)

Frage von fredneumann zum Thema Windows Tools ...

Windows Server
Datei-Ordner Überwachung für bestimmte Dateitypen (3)

Frage von hushpuppies zum Thema Windows Server ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(2)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

Cloud-Dienste
gelöst Bitcoins minen über Nacht? (16)

Frage von 1410640014 zum Thema Cloud-Dienste ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Batch & Shell
gelöst Batch um Benutzer aus Sitzung abzumelden (15)

Frage von zeroblue2005 zum Thema Batch & Shell ...