Volume in ... und Datenträger in ... bei Dir Befehl hängt von Laufwerk ab?
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)
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)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 27055
Url: https://administrator.de/contentid/27055
Ausgedruckt am: 21.11.2024 um 12:11 Uhr
12 Kommentare
Neuester Kommentar
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
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
ä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
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
Moin Dominik,
die Formulierung
..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
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
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]
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]
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
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