Ab einer bestimten stelle alles weg lassen
hallo
ich habe ein Problem
ich versuche bei ein title was weg zu lassen
Beispiel der title heilst so
das.soll.stehen.bleiben.SSSEEE.und.das.soll.weg
alles was vor den SSSEEE ist soll ausgegeben werden das andere alles nicht mehr
ich habe es bis jest immer so gemacht
set var1=%var2:.SS=^& echo.SS%
echo %var2%
dann gibt er mir das aus
das.soll.stehen.bleiben
SSSEEE.und.das.soll.weg
mach ich dann
Echo %var2% > text.txt
schreibt er nur das in die txt Datei rein
SSSEEE.und.das.soll.weg
ich brauch aber den ersten Bereich
die läge ändert sich immer ist also nicht 12 zeichnen lang oder so mal 5 mal 20 Mal 15
kann mir da wer helfen
ach so ich benutze windows server 2008
ich habe ein Problem
ich versuche bei ein title was weg zu lassen
Beispiel der title heilst so
das.soll.stehen.bleiben.SSSEEE.und.das.soll.weg
alles was vor den SSSEEE ist soll ausgegeben werden das andere alles nicht mehr
ich habe es bis jest immer so gemacht
set var1=%var2:.SS=^& echo.SS%
echo %var2%
dann gibt er mir das aus
das.soll.stehen.bleiben
SSSEEE.und.das.soll.weg
mach ich dann
Echo %var2% > text.txt
schreibt er nur das in die txt Datei rein
SSSEEE.und.das.soll.weg
ich brauch aber den ersten Bereich
die läge ändert sich immer ist also nicht 12 zeichnen lang oder so mal 5 mal 20 Mal 15
kann mir da wer helfen
ach so ich benutze windows server 2008
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 226533
Url: https://administrator.de/contentid/226533
Ausgedruckt am: 24.11.2024 um 05:11 Uhr
6 Kommentare
Neuester Kommentar
Moin soritose,
für Code nehmen wir hier immer die passenden Formatierungen:
Zum Umbenennen von Dateien reicht ein bzw mehrmals:
Für Variablenkürzung nimmst Du:
Gruß Phil
für Code nehmen wir hier immer die passenden Formatierungen:
<code type=plain>Codezeile und weiteres
damit es entsprechend lesbar istCodezeile und weiteres
Zum Umbenennen von Dateien reicht ein bzw mehrmals:
ren *SSSEEE.* *.
rem zur Ausgabe
@echo %var:.SSSEEE=&::%
rem zum Umbenennen
ren %var% %var:.SSSEEE=&::%
rem zum setzen der Variable
set var2=%var:.SSSEEE=&::%
rem zum Eintrag in Dateien
>test.txt echo %var:.SSSEEE=&::%
Gruß Phil
Hey,
sieht aus, als ob du Serienvideos bearbeiten willst. Nenn doch am besten mal ein paar Beispiele nach dem Muster "bestehender Input"-->"gewünschter Output". Übrigens: wenn du dich hier an eine alten Thread anhängst wird das niemand mitbekommen, der hier nicht mitgeschrieben hat. Mach im Zweifel einen neuen Thread auf.
Gruß, Endoro
sieht aus, als ob du Serienvideos bearbeiten willst. Nenn doch am besten mal ein paar Beispiele nach dem Muster "bestehender Input"-->"gewünschter Output". Übrigens: wenn du dich hier an eine alten Thread anhängst wird das niemand mitbekommen, der hier nicht mitgeschrieben hat. Mach im Zweifel einen neuen Thread auf.
Gruß, Endoro
moin soritose,
das verwenden von Platzhaltern in der Variablenerweiterung ist nur am Anfang möglich.
Das Script gibt Dir die passende Kürzung der Zeichenfolge.
Eine Hilfe ist enthalten.
Als Umsetyung in einer Forschleife in der Kommandozeile zum umbenennen ist es zB so anwendbar:
Es wird nach dem ersten und zweiten Buchstaben gesucht. Die Zahl zwischendurch gibt an wie viele Zeichen als Wildcard behandelt werden sollen.
Gruß Phil
das verwenden von Platzhaltern in der Variablenerweiterung ist nur am Anfang möglich.
Das Script gibt Dir die passende Kürzung der Zeichenfolge.
Eine Hilfe ist enthalten.
@echo off
:: CUTwithWildcards.cmd
:noOption
if "%~1" neq "" goto :nohelp
echo Gibt eine Ausgabe ohne die angebene Zeichenfolge.
echo Der Rest wird abgeschnitten.&echo(
echo %~n0 "Zeichenfolge" B n E [/i] &echo(
echo Zeichenfolge String zum Durchsuchen
echo B Zeichen Wonach am Anfang gesucht wird
echo n Auszulassende Zeichenanzahl
echo E Zeichen was das Ende der Zeichen Bestimmt
echo /i Case intensive
exit /b
:nohelp
setlocal disabledelayedexpansion
set "Original=%~1"
set "Begin=%~2"
set /a Excl=%~3 ||echo Syntaxfehler.>&2 &&exit /b 1
set "End=%~4"
if not defined end echo Syntaxfehler.>&2 &exit /b 1
set "CaseInt=%~5"
:: end Setting Input Param
set "out="
set "more="
call :read Original
if errorlevel 1 echo Zeichenfolge nicht gefunden.>&2
exit /b
:read VarName B # E [/i]
for /f "delims=" %%a in (' cmd /u /von /c "echo !%~1!"^|find /n %CaseInt% "%Begin%" ') do (
if defined out exit /b 0
for /f "delims=" %%b in (' cmd /u /von /c "echo !%1!"^|more +%Excl%^|find /n %CaseInt% "%End%"^|find "[%%a]" ') do (
set "out=1"
setlocal enabledelayedexpansion
set "In= !Original!"
set "In=!In:~,%%a!"
echo !In:^~2!
endlocal
) )
if not defined out exit /b 1
exit /b
::oneliner for CMDLine
set "Dq=""
for %i in ("*S??E*") do @set "out=1" &for /f "delims=" %a in ('cmd/u/c "echo %i"^|find /n "S"') do @if defined out for /f "delims=" %b in ('cmd/u/c "echo %i"^|more +2^|find /n "E"^|find "[%a]"') do @if %a equ %b set "out=" & set in= "%i" &cmd /v/c echo ren "%i" !in:^~0^,%a!!Dq!)
Als Umsetyung in einer Forschleife in der Kommandozeile zum umbenennen ist es zB so anwendbar:
for %i in (*s??e*) do for /f "delims=" %a in (' CUTwithWildcards "%i" S 2 E ') do echo ren "%i" "%a%~xi"
Gruß Phil