
DATINFO.BAT


Liest  Kurzname,  Erweiterung, Gre, Datum, Uhrzeit,
Pfad und Vollname einer Datei aus.


A] Bentigt wird dazu noch im selben Verzeichnis die Hilfs-Datei
'kn_umbr1.bat', bestehend aus der einzigen Zeile:

'Hole '

- Ohne Anfhrungszeichen und mit Leerzeichen,
aber ohne Zeilenumbruch am Ende! Dieser entsteht
u. U. automatisch und mu anschlieend
im Texteditor entfernt werden, damit der Befehl

'>>'

den nchsten Ausdruck dahinter und nicht darunter setzt.


B] Bentigt wird dazu noch im selben Verzeichnis die Hilfs-Datei
'kn_umbr2.bat', diesmal bestehend aus der einzigen Zeile:

'Hole "'


- Wie 'kn_umbr1.bat' ebenfalls ohne Zeilenumbruch am Ende.


Wie beschrieben in
[ http://www.erleuchtet.gmxhome.de/hilfe/dosmini2.htm ]




VORGEHEN: 

Den nchsten Bereich bis "exit" kopieren und als

DATINFO.BAT 

zusammen mit den Dateien

KN_UMBR1.BAT und KN_UMBR2.BAT 

ZUSAMMEN in ein Verzeichnis legen, eine Verknpfung 
zur DATINFO.BAT z.B. auf den Desktop ablegen
und die zu untersuchende Datei darauf ziehen.


Das ERGEBNIS liegt dann mit zugehrigem Namen 
im Ordner der zu untersuchenden Datei.
[siehe unten] 





@echo off


REM Datei-Info

REM Auch wenn die Ausgabe manchmal unter Speichermangel leidet,
REM Die Variablen mten geholt werden
REM Insbesondere wenn man sich auf das gewnschte Beschrnkt und
REM EVTL. die Batchdatei in einzelne CALL- Bereiche aufteilt


REM -------------


REM Alle KN_UMBR1.BAT und KN_UMBR2.BAT: Evtl. mit Pfadangabe!

REM Gewnschte Datei in Windows auf eine !VERKNPFUNG! hierzu ziehen!



REM -------------


ECHO HALLO

Echo.

echo Var 0:
echo %0

echo Var 1:
echo %1


ECHO Datei-Pfad pruefen

IF exist %1 GOTO LOS

ECHO Die Datei "%1" wurde nicht gefunden
ECHO.
ECHO GGF. Datei auf Verknuepfung ziehen
ECHO Verarbeitung wird abgebrochen


PAUSE

GOTO WEG

:LOS


REM BATCH-Info


ECHO.
ECHO LOS


REM Alternativ
REM Echo. 				> AUSGABE1.txt

REM Zur Absicherung:
DATE					> AUSGABE1.txt
REM ZU Dateinamen
echo.

echo. Ausfuehrende Batch-Datei:
echo.
echo %0
echo.

echo. Ausfuehrende Batch-Datei: 	>> AUSGABE1.txt
echo. 					>> AUSGABE1.txt
echo %0 				>> AUSGABE1.txt
echo. 					>> AUSGABE1.txt



echo. Pfad der Batch-Datei:
TRUENAME
CD
echo.

echo. Pfad der Batch-Datei: 		>> AUSGABE1.txt
TRUENAME 				>> AUSGABE1.txt
CD 					>> AUSGABE1.txt
echo. 					>> AUSGABE1.txt




echo. 					>> AUSGABE1.txt
echo. 	-------------			>> AUSGABE1.txt
echo. 					>> AUSGABE1.txt

echo.
echo. Untersuchte Datei:
echo.
echo %1
echo.

echo. 					>> AUSGABE1.txt
echo. Untersuchte Datei: 		>> AUSGABE1.txt
echo. 					>> AUSGABE1.txt
echo %1 				>> AUSGABE1.txt
echo. 					>> AUSGABE1.txt
echo. 					>> AUSGABE1.txt




rem the next line changes to the directory of the argument
CD %1\..

ECHO. Pfad der untersuchten Datei:
TRUENAME
CD
echo.!2X


REM Der Pfad der Zu Untersuchenden Datei ist bekannt
REM MS-DOS hat ihn aber noch nicht als Variable gespeichert
REM Und kann deshalb nicht hineinschreiben


PAUSE

cls


REM -------------


ECHO.


REM Zwischen Arbeits- und Datei-Verzeichnis wechseln



GOTO SKIP1


REM BLOCK 1
REM Aktuelles Datum holen kurz - EVTL fr Dateinamen

CD %0\..
type kn_umbr1.bat > 	ZW.bat
REM Absoluter Pfad?

IF not exist kn_umbr1.bat GOTO NO

Date >> ZW.bat

echo set AKTDATUM=%%4> HOLE.bat
call ZW.bat

echo %AKTDATUM%
echo.	 		>> AUSGABE1.txt
echo  AKTDATUM: 	>> AUSGABE1.txt
echo %AKTDATUM% 	>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.

REM set AKTDATUM=


:SKIP1



REM BLOCK 2
REM Dateiverzeichnis holen kurz - WICHTIG fr Pfadangaben

REM Und hier kommt ein besonderer Trick ins Spiel:
REM SChrg! Geht wegen 8.3. Auf Anschlu-Leerzeichen achten!


CD %0\..
type kn_umbr1.bat > 	%1ZW.BAT
REM Absoluter Pfad?

CD %1\..
TRUENAME >> %1ZW.BAT | sort /R

echo set PFADKURZ=%%1\> HOLE.bat
call %1ZW.BAT

CD %0\..
echo %PFADKURZ%
echo  PFADKURZ: 	>> AUSGABE1.txt
echo %PFADKURZ% 	>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.

REM set PFADKURZ=




REM BLOCK 3
REM Dateiverzeichnis holen lang

REM Und hier kommt ein besonderer Trick ins Spiel:
REM SChrg! Geht wegen 8.3. Auf Anschlu-Leerzeichen achten!


CD %0\..
type kn_umbr2.bat > 	%1ZW.BAT
REM Absoluter Pfad?

IF not exist kn_umbr2.bat GOTO NO


CD %1\..
CD >> %1ZW.BAT

echo set PFADLANG=%%1\"> HOLE.bat
call %1ZW.BAT

CD %0\..
echo %PFADLANG%
echo  PFADLANG: 	>> AUSGABE1.txt
echo %PFADLANG% 	>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.

set PFADLANG=




REM BLOCK 4
REM Dateinamen holen lang

REM Und hier kommt ein besonderer Trick ins Spiel:
REM SChrg! Geht wegen 8.3. Auf Anschlu-Leerzeichen achten!


CD %0\..
type kn_umbr2.bat > 	%1ZW.BAT
REM Absoluter Pfad?

CD %1\..
dir /b %1 >> %1ZW.BAT

echo set NAMELANG=%%1"> HOLE.bat
call %1ZW.BAT

CD %0\..
echo %NAMELANG%
echo  NAMELANG: 	>> AUSGABE1.txt
echo %NAMELANG% 	>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.

set NAMELANG=




REM BLOCK 5
REM Dateinamen holen mit Pfad lang 2

ECHO SCHWIERIG
ECHO.
ECHO dir /s /b %1
ECHO.

REM Geht evtl auch so...

echo %NAMEGANZ%
echo  NAMEGANZ direkt: 	>> AUSGABE1.txt
echo  inkl. Unterordner	>> AUSGABE1.txt
dir /s /b %1 		>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.


REM Und hier kommt ein besonderer Trick ins Spiel:
REM SChrg! Geht wegen 8.3. Auf Anschlu-Leerzeichen achten!


CD %0\..
type kn_umbr2.bat > 	%1ZW.BAT
REM Absoluter Pfad?

CD %1\..
dir /s /b %1 >> %1ZW.BAT

echo set NAMEGANZ=%%1"> HOLE.bat
call %1ZW.BAT

CD %0\..
echo %NAMEGANZ%
echo  NAMEGANZ lang: 	>> AUSGABE1.txt
echo %NAMEGANZ% 	>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.

set NAMEGANZ=




REM BLOCK 6
REM Dateinamen holen mit Pfad kurz

REM Und hier kommt ein besonderer Trick ins Spiel:
REM SChrg! Geht wegen 8.3. Auf Anschlu-Leerzeichen achten!


CD %0\..
type kn_umbr1.bat > 	%1ZW.BAT
REM Absoluter Pfad?

CD %1\..
echo %1 >> %1ZW.BAT

echo set NAMEGNZK=%%1> HOLE.bat
call %1ZW.BAT

CD %0\..
echo %NAMEGNZK%
echo  NAMEGNZK kurz: 	>> AUSGABE1.txt
echo %NAMEGNZK% 	>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.

set NAMEGNZK=


PAUSE


REM BLOCK 7
REM Datei-Infos einzeln holen

REM Und hier kommt ein besonderer Trick ins Spiel:
REM SChrg! Geht wegen 8.3. Auf Anschlu-Leerzeichen achten!


CD %0\..
type kn_umbr1.bat > 	%1ZW.BAT
REM Absoluter Pfad?


CD %1\..
dir %1 | find ":" | find "Datentrger" /V | find "Verzeichnis von" /V >name.txt >> %1ZW.BAT


echo set NAMEKURZ=%%1> HOLE.bat
call %1ZW.BAT

CD %0\..
echo %NAMEKURZ%
echo  NAMEKURZ: 	>> AUSGABE1.txt
echo %NAMEKURZ% 	>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.

set NAMEKURZ=


echo set ERWKURZ=%%2> HOLE.bat
call %1ZW.BAT

CD %0\..
echo %ERWKURZ%
echo  ERWKURZ: 	>> AUSGABE1.txt
echo %ERWKURZ% 	>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.

set ERWKURZ=


echo set GROESSED=%%3> HOLE.bat
call %1ZW.BAT

CD %0\..
echo %GROESSED%
echo  GROESSED: 	>> AUSGABE1.txt
echo %GROESSED% 	>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.

set GROESSED=


echo set DATUMD=%%4> HOLE.bat
call %1ZW.BAT

CD %0\..
echo %DATUMD%
echo  DATUMD: 		>> AUSGABE1.txt
echo %DATUMD% 		>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.

set DATUMD=


echo set UHRZEITD=%%5> HOLE.bat
call %1ZW.BAT

CD %0\..
echo %UHRZEITD%
echo  UHRZEITD: 	>> AUSGABE1.txt
echo %UHRZEITD% 	>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.	 		>> AUSGABE1.txt
echo.

set UHRZEITD=



REM Mehr sind nicht sinnvoll

REM DAS WAR'S Bis jetzt



REM Ausgabe verschieben:


ECHO Datei-Info wird erstellt im Datei-Verzeichnis:
ECHO.

move AUSGABE1.txt %1-INFO.txt



PAUSE

GOTO END




REM -------------



REM ABSCHLUSS


:MELDUNG

ECHO %1 hat eine Leerstelle
GOTO END



:NO

ECHO.
ECHO Die Datei KN_UMBR*.BAT wurde im angegebenen Pfad nicht gefunden
ECHO.
ECHO GGf. Absolute Pfade angeben
ECHO Verarbeitung wird abgebrochen

PAUSE



:WEG


REM Bereinigung von temporren Dateien:


DEL %1ZW.BAT

DEL ZW.BAT
DEL AUSGABE1.txt
DEL HOLE.bat

rem the next line changes back to the directory of the batch
CD %0\..

DEL ZW.BAT
DEL AUSGABE1.txt
DEL HOLE.bat

CD %1\..

DEL ZW.BAT
DEL AUSGABE1.txt
DEL HOLE.bat

CD C:\WINDOWS

DEL ZW.BAT
DEL AUSGABE1.txt
DEL HOLE.bat



REM -------------



:END

echo Datei: "%1"


REM Auflsen der Variablen:

set AKTDATUM=
set PFADKURZ=
set PFADLANG=
set NAMELANG=
set NAMEGANZ=
set NAMEGNZK=
set NAMEKURZ=
set ERWKURZ=
set GROESSED=
set DATUMD=
set UHRZEITD=


ECHO.
ECHO ENDE


PAUSE


DEL ZW.BAT
DEL %1ZW.BAT
DEL HOLE.bat

rem the next line changes back to the directory of the batch
CD %0\..
DEL ZW.BAT
DEL HOLE.bat

rem the next line changes to the directory of the argument
CD %1\..
DEL ZW.BAT
DEL HOLE.bat

cls
exit











Das Ergebnis von DATINFO.BAT

[ Beispielsweise ]


Folgende Variablen wurden in MS-DOS eingelesen und
wieder ausgegeben:






Aktuelles Datum: Sa, 22.01.2011
Neues Datum (TT.MM.JJ):

 Ausfuehrende Batch-Datei:

C:\DOS-BA~1\DOS_VE~1\DATINFO.BAT

 Pfad der Batch-Datei:

C:\DOS-BA~1\DOS_VE~1
C:\DOS-Batch\DOS_Verzeichnis


 	-------------


 Untersuchte Datei:

C:\DOS-BA~1\DOS_VE~1\NEUER_~1\NEUERO~1\FOTO_1~1.JPG


 PFADKURZ:
C:\DOS-BA~1\DOS_VE~1\NEUER_~1\NEUERO~1\


 PFADLANG:
"C:\DOS-Batch\DOS_Verzeichnis\Neuer_Ordner\Neuer Ord ner TEST\"


 NAMELANG:
"foto_11.01.2011.jpg"


 NAMEGANZ direkt:
 inkl. Unterordner
C:\DOS-Batch\DOS_Verzeichnis\Neuer_Ordner\Neuer Ord ner TEST\foto_11.01.2011.jpg
C:\DOS-Batch\DOS_Verzeichnis\Neuer_Ordner\Neuer Ord ner TEST\UnterOrdner 2\foto_11.01.2011.jpg


 NAMEGANZ lang:
"C:\DOS-Batch\DOS_Verzeichnis\Neuer_Ordner\Neuer Ord ner TEST\foto_11.01.2011.jpg"


 NAMEGNZK kurz:
C:\DOS-BA~1\DOS_VE~1\NEUER_~1\NEUERO~1\FOTO_1~1.JPG


 NAMEKURZ:
FOTO_1~1


 ERWKURZ:
JPG


 GROESSED:
3003


 DATUMD:
11.01.11


 UHRZEITD:
22:22









Hinrichs 2009/11

