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

Substring ? Batch

Frage Entwicklung Batch & Shell

Mitglied: Antum-frischling

Antum-frischling (Level 1) - Jetzt verbinden

24.03.2014, aktualisiert 17:49 Uhr, 1544 Aufrufe, 5 Kommentare, 2 Danke

Guten Tag liebe Programmierer,

ich habe ein kleines Problem und zwar ich möchte von einem Datei die ersten 11 Zeichen übernehmen und wonaders hinzufügen

zb. 2014-03-24-HalloWelt.txt soll in OrdnerA verschoben werden und zu 2014-03-24-erledigt.txt umbenannt werden. Wie sieht so ein Code aus?

Hab hier mal ein Beispiel, wie es grundsätzlich geht, aber ich weiss nicht wie ich den Ordner Name angeben könnte. Man könnte es eventuell als ein variablen festlegen das der Pfad 2014-03-24-HalloWelt.txt machen, weil der Datei-Namen sich immer ändern wird, aber ich wüsste nicht wie sowas aussieht,

SET _test=123456789abcdef0

SET _result=%_test:~0,5%
ECHO %_result% =12345

komme einfach nicht weiter.

Kann mir da weiter helfen bitte

Mitglied: Endoro
24.03.2014 um 18:14 Uhr
Hey, zwei Beispiele:
01.
@ECHO OFF &SETLOCAL disableDelayedExpansion 
02.
SET "FName=2014-03-24-HalloWelt.txt" 
03.
SET "N1Name=%FName:~0,11%erledigt.txt" 
04.
ECHO %N1Name% 
05.
FOR /f "tokens=1-3delims=-" %%a IN ("%FName%") DO SET "N2Name=%%a-%%b-%%c-erledigt.txt" 
06.
ECHO %N2Name%
Für Hilfe siehe set /? und for /?.
Gruss Endoro.
Bitte warten ..
Mitglied: Antum-frischling
25.03.2014, aktualisiert um 11:21 Uhr
Vielen dank für deine Hilfe, soweit klappt es wunderbar, aber ich müsste es so um ändern, dass der die Datei Name verändert, es wird nur auf der CMD angezeigt.

die erste variante ist ein feste variable oder ?
von daher wäre die 2 möglichkeit am besten, weil der name sich immer ändern wird (datum)

dafür kann ich doch ren benutzten oder sieht dieser Befehl wieder anderes
Bitte warten ..
Mitglied: Endoro
25.03.2014 um 12:57 Uhr
Hey,
ja REN ist richtig:
01.
@ECHO OFF &SETLOCAL disableDelayedExpansion 
02.
CD /c X:\My Folder 
03.
FOR /f "delims=" %%x IN ('DIR /b /a-d *-*-*-*.txt') DO ( 
04.
	FOR /f "tokens=1-3delims=-" %%a IN ("%%~x") DO ( 
05.
		REN "%%~x" "%%a-%%b-%%c-erledigt.txt" 
06.
07.
)
Gruss Endoro.
Bitte warten ..
Mitglied: Antum-frischling
25.03.2014, aktualisiert um 16:20 Uhr
Vielen dank Endoro,

ich hätte noch eine letzte Frage, ich habe jetzt diese einfache Code genommen und kann ich bei diesem Code auch den Pfad angeben. zb

nehme den Pfad von D:\User\Guenni\OrdnerA\*.txt

hab den * genommen, weil die Zeichen vom Datum immer gleich lang sind und er soll einfach schauen, dass er einfach das mit dem txt-datei nehmen soll.

das wäre meine aktuelle Code
SET FName=2014-03-24-HalloWelt.txt
SET N1Name=%FName:~0,11%erledigt.txt

ren D:\Users\Guenni\Desktop\OrdnerA\2014-03-24-HalloWelt %N1Name%


und ich möchte sowas wie

SET FName=D:\Users\Guenni\Desktop\OrdnerA\*-HalloWelt.txt =>dort könnte morgen 2014-03-25 drin stehen oder eine anderes Datum
SET N1Name=%FName:~0,11%erledigt.txt

ren D:\Users\Guenni\Desktop\OrdnerA\2014-03-24-HalloWelt %N1Name%

wenn sowas nicht geht,dann würde ich auch eine andere alternative nehmen

Ich habe mal dein Code mal genommen und mit meine Sachen hinzugefügt


@ECHO OFF &SETLOCAL disableDelayedExpansion

cd /c D:\Users\Guenni\Desktop\Hey\

FOR /f "delims=" %%x IN ('DIR /b /a-d *-*-*-*.txt') DO (

FOR /f "tokens=1-3delims=-" %%a IN ("%%~x") DO (

REN "%%~x" "%%a-%%b-%%c-erledigt.txt"
)
)

pause

ich bin zu doof für batch :S irgendwie läuft da nichts :S
Bitte warten ..
Mitglied: Endoro
25.03.2014 um 17:10 Uhr
In der ersten For-Schleife werden mit dem Muster *-*-*-*.txt alle Dateien bearbeitet, die mindestens drei Striche und die Endung .txt haben. In der zweiten Schleife wird der (immer andere) Name ausenander genommen und anschliessend wieder zusammengesetzt und um "erledigt.txt" ergänzt. Du kannst die Dateien umbenannt auch gleich in einen Ordner verschieben:
01.
@ECHO OFF &SETLOCAL disableDelayedExpansion 
02.
CD /c X:\My Folder 
03.
FOR /f "delims=" %%x IN ('DIR /b /a-d *-*-*-*.txt') DO ( 
04.
	FOR /f "tokens=1-3delims=-" %%a IN ("%%~x") DO ( 
05.
		MOVE "%%~x" "Y:\FOLDER\%%a-%%b-%%c-erledigt.txt" 
06.
07.
)
Gruss Endoro.
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Batch & Shell
gelöst Batch: Textdatei Zeilenweise auslesen (2)

Frage von CreatorX zum Thema Batch & Shell ...

Batch & Shell
Verschachtelte For Schleife für Batch Neuling (3)

Frage von yperiu zum Thema Batch & Shell ...

Batch & Shell
gelöst Alle Ordner bis auf die letzten 3 per Batch löschen (5)

Frage von Stefan2733 zum Thema Batch & Shell ...

Batch & Shell
gelöst Fenstertitel von anderen Tasks per batch auslesen (3)

Frage von NetMare zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
CPU, RAM, Mainboards
Kaufberatung für mind. 8 verschiedene HighEnd-Mainboards (23)

Frage von yperiu zum Thema CPU, RAM, Mainboards ...

Mac OS X
Mac kann nicht im LAN pingen alle anderen schon (19)

Frage von smartino zum Thema Mac OS X ...

Hardware
gelöst PCI-Express-Adapterfrage (14)

Frage von DerWoWusste zum Thema Hardware ...

Linux Netzwerk
DHCP IP-vergabe erst nach 1-2 Minuten (11)

Frage von Maik82 zum Thema Linux Netzwerk ...