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

lange und kurze dateinamen verarbeiten

Frage Entwicklung Batch & Shell

Mitglied: jschneider

jschneider (Level 1) - Jetzt verbinden

09.09.2008, aktualisiert 10.09.2008, 6333 Aufrufe, 4 Kommentare

Hallo,

ich benötige eine Funktion mit der ich den normalen (langen) dateinamen auslese und den dazugehörigen kurzen Dateinamen (falls vorhanden)


dir /x liefert mir ja schonmal eine Liste meiner verzeichnisse und stellt die kurzen dateinamen dar , sofern vorhanden

wenn jedoch kein kurzer dateiname vorhanden ist ist die stelle quasi frei und mein Leerzeichen delimiter wird nicht erkannt
kurze Verzeichnisnamen werden halt nur angezeigt, wenn der dateiname selber länger als 8 Zeichen ist


01.
set qLW=L: 
02.
 
03.
for /f "skip=7 tokens=1,2,3,4,5,6,7 delims= " %%e in ('dir /d /x /a:d %qLW%\') do ( 
04.
 echo  ------------------------------------------------ 
05.
 echo f  %%f 
06.
 echo g  %%g 
07.
 echo h  %%h 
08.
 echo i  %%i 
09.
 echo j  %%j 
10.
 echo k  %%k 
11.
)

d.h. wenn mit obigen code gesucht wird ist

%%h der normale Verzeichnisname , wenn der verzeichnisname kürzer als 8 Zeichen ist und %%i nicht belegt

%%h der kurze Verzeichnisname, wenn der Verzeichnisname länger als 8 Zeichen ist und %%i der Lange Verzeichnisname


so kann ich nicht arbeiten

ich könnte jetzt irgendwie abfragen, ob %%i überhaupt inhalt hat und in diesem Falle mir das hinbiegen und so .. aber das geht doch bestimmt besser oder ?



Gruß, Jan
Mitglied: Biber
09.09.2008 um 16:22 Uhr
Moin jschneider

vom CMD-Prompt könnte es so aussehen (Beispiel):
01.
for /d %i in (d:\temp\t*) do @if /i "%~snxi" NEQ "%~nxi"  @(echo %~nxi [%~snxi]) else @echo %~nxi
Ausgabe
templogs 
test 
test22 
testheute [TESTHE~1] 
tomove 
tomove1up [TOMOVE~1] 
tomove2up [TOMOVE~2]
Batch-Skizze:
01.
@echo off 
02.
... 
03.
for /d %%i in (d:\temp\t*) do ( 
04.
     if /i "%%~snxi" NEQ "%%~nxi"  ( 
05.
          echo %%~nxi [%%~snxi] 
06.
      ) else ( 
07.
 @echo %%~nxi 
08.
))


Ich habe es jetzt mal auf alle Unterverzeichnisse T* in d:\Temp reduziert, weil da einige mit "langen" und "kurzen" Namen dabei sind.

Wie Du schon richtig vermutet hast, wirst Du kaum um eine IF-Konstruktion herumkommen.

Grüße
Biber
Bitte warten ..
Mitglied: miniversum
09.09.2008 um 17:25 Uhr
also bei mir funktionierts auch einfach so:
01.
FOR /F "delims=" %i in ('dir /b /a:d') do @echo %~snxi 
Bitte warten ..
Mitglied: jschneider
10.09.2008 um 09:17 Uhr
super

dank an euch beide

frage mich nur gerade ob das %~snxi bzw %~snxi zum Allgemeinwissen gehört bzw. in welcher Hilfe man das hätte finden können/müssen

Bitte warten ..
Mitglied: miniversum
10.09.2008 um 09:39 Uhr
Das steht in der Hilfe zum For-Befehl ganz unten.
Ob es zum allgemeinwissen gehört weiß ich nicht aber es ist oft nützlich wenn man mit dateien arbeitet.
Bitte warten ..
Ähnliche Inhalte
PHP
Lange Liste und einige häsliche Schleifen (3)

Frage von WPFORGE zum Thema PHP ...

Batch & Shell
gelöst Erstelldatum vieler Dateien ändern (aus Dateinamen abgeleitet) (11)

Frage von X-Spezi zum Thema Batch & Shell ...

Batch & Shell
Umbenennen entpackter Dateien nach Dateinamen der rar- zip-Datei

Frage von windows-nutzer zum Thema Batch & Shell ...

Backup
gelöst Clonzilla Hdd clonen wie lange (4)

Frage von achim222 zum Thema Backup ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst ZIP-Archive nach Dateien durchsuchen und Pfade ausgeben (33)

Frage von evinben zum Thema Batch & Shell ...

Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (30)

Frage von Datsspeed zum Thema Exchange Server ...

Router & Routing
Routingproblem in Homerouter-Kaskade mit Raspi (22)

Frage von Oldschool zum Thema Router & Routing ...

Verschlüsselung & Zertifikate
Mit Veracrypt eine zweite interne (non-system) Festplatte verschlüsseln (10)

Frage von Bernulf zum Thema Verschlüsselung & Zertifikate ...