zerobit
26.03.2007, 17:27
ich habe ein Script geschrieben, dass meine Dateinamen umschreibt.
mit Ach und Krach habe ich die For-Schleife hinbekommen.
es schreibt mir meine Dateien:
X:\dir\sub dir\sadfjh - 00 - sdakjf [abc][a1cd3f47].ext
in
X:\dir\sub dir\sadfjh - 00 - sdakjf [abc][A1CD3F47].ext
um.
hier erstmal das Script:
@ECHO OFF
rem Mod by 'zerobit' v0.07.9.054
if "%~x1"=="" cd /d %1
if not "%~x1"=="" cd /d "%~dp1"
:FORs
FOR %%a in ('dir *.* /B /A-D-H /ON') DO echo "%%a"
echo.
FOR %%a in ('dir *.* /B /A-D-H /ON') DO call :CRCrs "%%a"
rem DO echo %%a
rem DO call :CRCrs %%a
:CRCrs
set DropName="%~n1"
echo InF: %DropName%
echo.
set PFNameK01="%DropName:~1,-11%"
echo Cut: %PFNameK01%
echo.
set crc32="%DropName:~-10,-2%"
SET OLDCRC=%crc32%
SET NEWCRC=%OLDCRC:~1,-1%
:meUCASE
SET NEWCRC=%NEWCRC:a=A%
SET NEWCRC=%NEWCRC:b=B%
SET NEWCRC=%NEWCRC:c=C%
SET NEWCRC=%NEWCRC:d=D%
SET NEWCRC=%NEWCRC:e=E%
SET NEWCRC=%NEWCRC:f=F%
SET NEWCRC=%NEWCRC:g=G%
SET NEWCRC=%NEWCRC:h=H%
SET NEWCRC=%NEWCRC:i=I%
SET NEWCRC=%NEWCRC:j=J%
SET NEWCRC=%NEWCRC:k=K%
SET NEWCRC=%NEWCRC:l=L%
SET NEWCRC=%NEWCRC:m=M%
SET NEWCRC=%NEWCRC:n=N%
SET NEWCRC=%NEWCRC:o=O%
SET NEWCRC=%NEWCRC:p=P%
SET NEWCRC=%NEWCRC:q=Q%
SET NEWCRC=%NEWCRC:r=R%
SET NEWCRC=%NEWCRC:s=S%
SET NEWCRC=%NEWCRC:t=T%
SET NEWCRC=%NEWCRC:u=U%
SET NEWCRC=%NEWCRC:v=V%
SET NEWCRC=%NEWCRC:w=W%
SET NEWCRC=%NEWCRC:x=X%
SET NEWCRC=%NEWCRC:y=Y%
SET NEWCRC=%NEWCRC:z=Z%
ECHO.OLDCRC=%OLDCRC%
ECHO.NEWCRC="%NEWCRC%"
:ReName
ren "%~nx1" "%DropName:~1,-11%[%NEWCRC%]%~x1"
echo.
echo "%DropName:~1,-11%[%NEWCRC%]%~x1"
GOTO :EOF
:end
rem PAUSE
obwol das Script funktioniert, hat es ein Schöhnheitsfehler,
duch die grau-kursiv Markierte For-Schleife habe ich mir die zu verarbeitenen Zeilen anzeigen lassen:
"'dir"
"axfghnlfgh jlkfg [fedc9874].ext"
"bsfgkh fkgjhlkfgh [asdf1234].ext"
"cewrhgekhg aksdfghkj [acefb012].ext"
"/B"
"/A-D-H"
"/ON'"
dadurch passiert sowas:
InF: "'dir"
Cut: ""
OLDCRC=""'di"
NEWCRC=""'DI"
Das System kann die angegebene Datei nicht finden.
"["'DI]"
InF: "axfghnlfgh jlkfg [fedc9874]"
Cut: "axfghnlfgh jlkfg "
OLDCRC="fedc9874"
NEWCRC="FEDC9874"
"axfghnlfgh jlkfg [FEDC9874].ext"
InF: "bsfgkh fkgjhlkfgh [asdf1234]"
Cut: "bsfgkh fkgjhlkfgh "
OLDCRC="asdf1234"
NEWCRC="ASDF1234"
"bsfgkh fkgjhlkfgh [ASDF1234].ext"
InF: "cewrhgekhg aksdfghkj [acefb012]"
Cut: "cewrhgekhg aksdfghkj "
OLDCRC="acefb012"
NEWCRC="ACEFB012"
"cewrhgekhg aksdfghkj [ACEFB012].ext"
InF: "B"
Cut: ""
OLDCRC="""
NEWCRC="""
Das System kann die angegebene Datei nicht finden.
"["]"
InF: "A-D-H"
Cut: ""
OLDCRC=""A-D-"
NEWCRC=""A-D-"
Das System kann die angegebene Datei nicht finden.
"["A-D-]"
InF: "ON'"
Cut: ""
OLDCRC=""ON"
NEWCRC=""ON"
Das System kann die angegebene Datei nicht finden.
"["ON]"
welchen Fehler habe ich gemacht?
mit Ach und Krach habe ich die For-Schleife hinbekommen.
es schreibt mir meine Dateien:
X:\dir\sub dir\sadfjh - 00 - sdakjf [abc][a1cd3f47].ext
in
X:\dir\sub dir\sadfjh - 00 - sdakjf [abc][A1CD3F47].ext
um.
hier erstmal das Script:
@ECHO OFF
rem Mod by 'zerobit' v0.07.9.054
if "%~x1"=="" cd /d %1
if not "%~x1"=="" cd /d "%~dp1"
:FORs
FOR %%a in ('dir *.* /B /A-D-H /ON') DO echo "%%a"
echo.
FOR %%a in ('dir *.* /B /A-D-H /ON') DO call :CRCrs "%%a"
rem DO echo %%a
rem DO call :CRCrs %%a
:CRCrs
set DropName="%~n1"
echo InF: %DropName%
echo.
set PFNameK01="%DropName:~1,-11%"
echo Cut: %PFNameK01%
echo.
set crc32="%DropName:~-10,-2%"
SET OLDCRC=%crc32%
SET NEWCRC=%OLDCRC:~1,-1%
:meUCASE
SET NEWCRC=%NEWCRC:a=A%
SET NEWCRC=%NEWCRC:b=B%
SET NEWCRC=%NEWCRC:c=C%
SET NEWCRC=%NEWCRC:d=D%
SET NEWCRC=%NEWCRC:e=E%
SET NEWCRC=%NEWCRC:f=F%
SET NEWCRC=%NEWCRC:g=G%
SET NEWCRC=%NEWCRC:h=H%
SET NEWCRC=%NEWCRC:i=I%
SET NEWCRC=%NEWCRC:j=J%
SET NEWCRC=%NEWCRC:k=K%
SET NEWCRC=%NEWCRC:l=L%
SET NEWCRC=%NEWCRC:m=M%
SET NEWCRC=%NEWCRC:n=N%
SET NEWCRC=%NEWCRC:o=O%
SET NEWCRC=%NEWCRC:p=P%
SET NEWCRC=%NEWCRC:q=Q%
SET NEWCRC=%NEWCRC:r=R%
SET NEWCRC=%NEWCRC:s=S%
SET NEWCRC=%NEWCRC:t=T%
SET NEWCRC=%NEWCRC:u=U%
SET NEWCRC=%NEWCRC:v=V%
SET NEWCRC=%NEWCRC:w=W%
SET NEWCRC=%NEWCRC:x=X%
SET NEWCRC=%NEWCRC:y=Y%
SET NEWCRC=%NEWCRC:z=Z%
ECHO.OLDCRC=%OLDCRC%
ECHO.NEWCRC="%NEWCRC%"
:ReName
ren "%~nx1" "%DropName:~1,-11%[%NEWCRC%]%~x1"
echo.
echo "%DropName:~1,-11%[%NEWCRC%]%~x1"
GOTO :EOF
:end
rem PAUSE
obwol das Script funktioniert, hat es ein Schöhnheitsfehler,
duch die grau-kursiv Markierte For-Schleife habe ich mir die zu verarbeitenen Zeilen anzeigen lassen:
"'dir"
"axfghnlfgh jlkfg [fedc9874].ext"
"bsfgkh fkgjhlkfgh [asdf1234].ext"
"cewrhgekhg aksdfghkj [acefb012].ext"
"/B"
"/A-D-H"
"/ON'"
dadurch passiert sowas:
InF: "'dir"
Cut: ""
OLDCRC=""'di"
NEWCRC=""'DI"
Das System kann die angegebene Datei nicht finden.
"["'DI]"
InF: "axfghnlfgh jlkfg [fedc9874]"
Cut: "axfghnlfgh jlkfg "
OLDCRC="fedc9874"
NEWCRC="FEDC9874"
"axfghnlfgh jlkfg [FEDC9874].ext"
InF: "bsfgkh fkgjhlkfgh [asdf1234]"
Cut: "bsfgkh fkgjhlkfgh "
OLDCRC="asdf1234"
NEWCRC="ASDF1234"
"bsfgkh fkgjhlkfgh [ASDF1234].ext"
InF: "cewrhgekhg aksdfghkj [acefb012]"
Cut: "cewrhgekhg aksdfghkj "
OLDCRC="acefb012"
NEWCRC="ACEFB012"
"cewrhgekhg aksdfghkj [ACEFB012].ext"
InF: "B"
Cut: ""
OLDCRC="""
NEWCRC="""
Das System kann die angegebene Datei nicht finden.
"["]"
InF: "A-D-H"
Cut: ""
OLDCRC=""A-D-"
NEWCRC=""A-D-"
Das System kann die angegebene Datei nicht finden.
"["A-D-]"
InF: "ON'"
Cut: ""
OLDCRC=""ON"
NEWCRC=""ON"
Das System kann die angegebene Datei nicht finden.
"["ON]"
welchen Fehler habe ich gemacht?