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

Volume in ... und Datenträger in ... bei Dir Befehl hängt von Laufwerk ab?

Frage Entwicklung Batch & Shell

Mitglied: miniversum

miniversum (Level 3) - Jetzt verbinden

28.02.2006, aktualisiert 09.03.2006, 6603 Aufrufe, 12 Kommentare

Hallo
Ich habe eine solche Problematik bzw. Frage wie meine hier im Forum nicht gefunden und daher Frag ich einfach mal ob es mir jemand erklären kann und hoffe das der lange Text nicht abschreckt...

Ich habe Festgestellt das ich beim aufrufen des dir Befehls bei meinem PC in der Kopfzeile den Text "Datenträger in Laufwerk H: ... " stehen habe, wenn ich den Befehl auf meinen einen USB Stick oder Festplatte anwende. Wende ich den Befehl auf meinem zweiten USB Stick an oder auf dem PC eines Freundes steht da aber "Volume in Laufwerk H: ... ".
Mein Windows und das Windows meines Freundes sind beide in deutsch und auch auf dem gleichen Stand. Nun habe ich mich gefragt woher der Unterschied kommt. Mit der Formatierung der USB Sticks oder der Festplatte hat es nichts zu tun, da beide USB Sticks FAT32 sind.

Die Erklärung warum ich es in diesem Bereich schreibe ist folgende:
Ich möchte per Batch der letzte Ã"nderungsdatum einer Datei (Dateiname.txt) auslesen und anzeigen. Dies mache ich mit folgendem Befehl:

for /F "tokens=1,2 delims= " %%f in ('dir /a-D /Tw /-C Dateiname.txt^|find "."') do echo Stand: %%f %%g

Dies funktioniert auch ohne Probleme wenn beim dir Aufruf "Datenträger in Laufwerk H: ... " in der Kopfzeile steht. Die Ausgabe lautet dann z.B. so:

Stand: 27.02.2006 10:17

Wenn er Dir Aufruf allerdings "Volume in Laufwerk H: ... " in der Kopfzeile hat erscheint folgendes:

Stand: Volume in
Stand: 27.02.2006 10:17

Was bei weiterem verfolgenden der "Volume in Laufwerk H: ... " Zeile entspricht.

Das Problem habe ich zwar gelöst das es mir bei beiden immer nur die letzte Zeile anzeigt, aber es würde mich trotzdem interessieren wie diese unterschiedliche Anzeige zu stande kommt?
Ich lerne gerne dazu...

miniversum
(Dominik)
Mitglied: Biber
28.02.2006 um 15:12 Uhr
Moin Dominik,

da kann ich auch nur eine halbe Antwort versuchen.

Zur Teilfrage "wieso heißt das manchmal "Datenträger" und mal "Volume" und mal "Laufwerk" ... frag mich nicht... da ist keine Gesetzmäßigkeit erkennbar.
Ist wahrscheinlich eine zusammengeschlamperte Raubkopie aus Taiwan - kauf nächstes Mal lieber das qualitätsgeprüfte M$-Original...

Die andere Teilfrage: Wie löse ich das... da kann ich gerne helfen.
a) bei dem DIR noch den Parameter "/b" benutzen (dann hast du weder "Volume" noch "Laufwerk" ..
-oder-
b) bei der FOR-Anweisung ein "skip=2" einbauen....
- oder-
c) Die Ausgabe mit Find.exe auf "Volume" oder "Datentr" oder "Laufwerk" untersuchen...

Gruß Biber
Bitte warten ..
Mitglied: miniversum
28.02.2006 um 16:59 Uhr
Danke für die Antwort.

Ist wahrscheinlich eine
zusammengeschlamperte Raubkopie aus Taiwan -
kauf nächstes Mal lieber das
qualitätsgeprüfte M$-Original...


Ist ein Orginal! Direkt von MS ohne das ein doofer Verkäufer das ding jemals in der Hand hatte


a) bei dem DIR noch den Parameter
"/b" benutzen (dann hast du weder
"Volume" noch "Laufwerk"
..

mit /b dabei zeigt er nicht mehr das Datum oder Uhrzeit an sondern den Dateinamen....

-oder-
b) bei der FOR-Anweisung ein
"skip=2" einbauen....
- oder-

Da zeigt er mir garnix mehr an....

Aber wie geschrieben habs gelöst.. Danke trotzdem..

Dominik
Bitte warten ..
Mitglied: Biber
28.02.2006 um 17:18 Uhr
ähmm.. ja, Dominik,

mit dem "Skip=2" hast Du Recht.. das bringt in Verbindung mit dem "find "." tatsächlich nichts.
~~~
Die Variante mit dem "dir /b" meinte ich so:
for /F %%f in ('dir /b /a-D dateiname.txt') do echo Stand: %%~tf

Finde ich kürzer und übersichtlicher.


Tz, tz ... und das jetzt schon auf Original-M$-CDs rumgeschlampt wird, erschüttert mich nun aber wirklich...

Gruß
Frank / der Biber aus Bremen
Bitte warten ..
Mitglied: miniversum
28.02.2006 um 17:27 Uhr
hmm.. ok danke funktioniert..
Kannst du mir als doofer kleiner Mensch jetztr auch mal erklären wie das geht?
wenn ich nur direkt
dir /b /a-D dateiname.txt
eingeben zeigts ja nur den Dateinamen an.
Was macht das %%~tf ?

Danke für die Hilfe!
Dominik
Bitte warten ..
Mitglied: Biber
28.02.2006 um 17:51 Uhr
Moin Dominik,

die Formulierung
Kannst du mir als doofer kleiner Mensch...

..ist einfach genial.. die kann ebenso auf den Fragenden bezogen sein wie auf den Befragten.. den Satz merke ich mir für die nächsten Personalgespräche..
"Chef, können Sie mir mal als Schafsnase erklären, warum ich nur ein Achtel von Ihrem Gehalt bekomme?"...*gg ...freue mich jetzt schon drauf...

Back to thread...

Unter anderem in der Hilfe zur FOR..IN..DO-Anweisung sind die Möglichkeiten aufgeführt:
$cmd$ For /?
......
...

Zusätzlich wurde die Ersetzung von Verweisen auf FOR-Variablen erweitert.
Sie können jetzt folgende Syntax verwenden:

%~I - Expandiert %I und entfernt alle umschließenden
Anführungszeichen (").
%~fI - Expandiert %I zu einem vollständigen Dateinamen.
%~dI - Erzeugt nur den Laufwerkbuchstaben von %I.
%~pI - Erzeugt nur den Pfad von %I.
%~nI - Erzeugt nur den Dateinamen von %I.
%~xI - Erzeugt nur die Dateierweiterung von %I.
%~sI - Erzeugter Pfad enthält nur kurze Dateinamen.
%~aI - Erzeugt die Dateiattribute von %I.
%~tI - Erzeugt Datum und Zeit von %I.
%~zI - Erzeugt die Dateigröße von %I.
......

Gute Beispiele für die Anwendung findest Du hier im Bereich "Batch & Shell" vor allem bei Batch-Aufgaben mit XCopy/Backups und bei Synchronisationsaufgaben (Dateiliste und Laufwerksinhalt vergleichen oder auch Inhalt von Original- und Backupverzeichnis).

Grüße
Biber
Bitte warten ..
Mitglied: miniversum
28.02.2006 um 18:13 Uhr
Danke! Hab ich woll beim druchblättern der Hilfe übersehen...
Bitte warten ..
Mitglied: miniversum
05.03.2006 um 12:40 Uhr
Nachtrag.....

for /F %%f in ('dir /b /a-D dateiname.txt') do echo Stand: %%~tf

... funktioniert problemlos.

Jetzt habe ich aber die Batch so verändert das der Dateiname nicht mehr fest ist und so die Vatiable %Dateiname% verwende, also:

for /F %%f in ('dir /b /a-D %Dateiname%') do echo Stand: %%~tf

Das funktioniert auch solange der Name der Datei der in %Dateiname% gespeichert ist keine Leerstellen enthällt.
Sind Leerstellen vorhanden (z.B. echo %Dateiname% -> meine Datei.txt) funktioniert die For-Schleife nicht und der Dir befehl findet den Dateinamen nicht.

Das geht doch bestimmt auch mit langen Dateinamen mit Leerzeichen oder?

Dominik
Bitte warten ..
Mitglied: Biber
05.03.2006 um 15:13 Uhr
Moin miniversum,

einfach den %Dateiname% in Anführungszeichen setzen (wenn es nur EINE Datei ist).
Also:
Set "Dateiname=c:\Dokumente und SonZeug\miniversum\test\Tageshoroskop.txt"
for /F %%f in ('dir /b /s /a-D "%Dateiname%"') do echo Stand: %%~tf

HTH Biber
[Edit]
Sorry, hier fehlt das "delims=" in der FOR..IN..DO-Anweisung.
Kommt vom ungetesteten Posten.
Richtiger:
for /F "delims=" %%f in ('dir /b /s.....
[/Edit]
Bitte warten ..
Mitglied: miniversum
05.03.2006 um 17:03 Uhr
Diese Idee hatte ich auch schon.
Das Ergebnis ist das die Variable %Dateiname% nichts mehr drinsteht und er daher auch keine Datei findet um das Datum anzuzeigen.

Hier meine Bisherigen Ideen:

@echo off
cls
Set Dateiname="Neu Textdokument.txt"

echo 1 x%Dateiname%x

if /I not exist %Dateiname% Set Dateiname="%Dateiname%.txt"

echo 2 x%Dateiname%x

::for /F "tokens=1*" %%f in ('dir /b /a-D "%Dateiname%"') do Set Dateiname1=%%f %%g

echo 3 x%Dateiname%x%Dateiname1%x

for /F %%f in ('dir /b /a-D %Dateiname%') do Set Dateiname2=%%f

echo 4 x%Dateiname%x%Dateiname1%x%Dateiname2%x

for /F %%f in ('dir /b /a-D %Dateiname%') do echo Stand: %%~tf

echo.
pause

Dominik
Bitte warten ..
Mitglied: Biber
05.03.2006 um 17:35 Uhr
Moin Dominik,
probier es mal so bitte:

@echo off
cls
Set "Dateiname=Neu Textdokument.txt"

echo 1 Dateiname ist: [%Dateiname%]
echo if /I not exist "%Dateiname%" Set "Dateiname=%Dateiname%.txt"
if /I not exist "%Dateiname%" Set "Dateiname=%Dateiname%.txt"

echo 2 Dateiname ist: [%Dateiname%]

for /F "tokens=1,*" %%f in ('dir /b /a-D "%Dateiname%"') do Set "Dateiname1=%%f %%g"
echo 3 Dateiname1/2: [%Dateiname%][%Dateiname1%]

for /F "delims=" %%f in ('dir /b /a-D "%Dateiname%"') do Set "Dateiname2=%%f"
echo 4 Dateiname/1/2: [%Dateiname%][%Dateiname1%][%Dateiname2%]

for /F "delims=" %%f in ('dir /b /s /a-D "%Dateiname%"') do echo %%~tf

Sollte bei dir sinngemäß ergeben:
1 Dateiname ist: [Neu Textdokument.txt]
if /I not exist "Neu Textdokument.txt" Set "Dateiname=Neu Textdokument.txt.txt"

2 Dateiname ist: [Neu Textdokument.txt]
3 Dateiname1/2: [Neu Textdokument.txt][Neu Textdokument.txt]
4 Dateiname/1/2: [Neu Textdokument.txt][Neu Textdokument.txt][Neu Textdokument.txt]

Stand: 05.03.06 17:16

(bei existierendem "Neu textdokument.txt".)

Gruß
Biber
Bitte warten ..
Mitglied: miniversum
07.03.2006 um 19:20 Uhr
Danke.. ne kleine Änderung muste ich machen.. mit der txt Datei hats funktioniert, mit ner bat Datei nicht ganz.. aber war nur ne Kleineigkeit.
Danke

Dominik
Bitte warten ..
Mitglied: miniversum
09.03.2006 um 20:01 Uhr
so hier nun endlich Die getestete und mit ner .bat Datei funktionierende Version... Damit schließe ich das jetzt auch.

@echo off
cls

Set Dateiname=Neu Textdokument
echo 1 Dateiname ist: [%Dateiname%]

if /I not exist "%Dateiname%" Set "Dateiname=%Dateiname%.bat"
echo 2 Dateiname ist: [%Dateiname%]

for /F "tokens=1,*" %%f in ('dir /b /a-D "%Dateiname%"') do Set "Dateiname1=%%f %%g"
echo 3 Dateiname1/2: [%Dateiname%][%Dateiname1%]

for /F "delims=" %%f in ('dir /b /a-D "%Dateiname%"') do Set "Dateinam2=%%f"
echo 4 Dateiname/1/2: [%Dateiname%][%Dateiname1%][%Dateiname2%]

for /F "delims=" %%f in ('dir /b /a-D "%Dateiname%"') do echo %%~tf

pause

Dominik
Bitte warten ..
Neuester Wissensbeitrag
DSL, VDSL

Telekom blockiert immer noch den Port 7547 in ihrem Netz

(3)

Erfahrungsbericht von joachim57 zum Thema DSL, VDSL ...

Ähnliche Inhalte
Hyper-V
gelöst Hyper-V gleiche Datenträger-ID bzw. Volume-ID (10)

Frage von Bernd16 zum Thema Hyper-V ...

Server-Hardware
gelöst Supermicro 813-4 Server - hängt bei Neustarts (4)

Frage von NetzwerkDude zum Thema Server-Hardware ...

Notebook & Zubehör
Laptop hängt nach Windows 10 Update (1)

Frage von Markowitsch zum Thema Notebook & Zubehör ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...