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

Umlaute beim Dateinamenexportieren in Excel?

Frage Entwicklung Batch & Shell

Mitglied: datenfluss

datenfluss (Level 1) - Jetzt verbinden

25.08.2010 um 16:38 Uhr, 5326 Aufrufe, 6 Kommentare

Servus,

ich gehe davon aus, dass das für euch nicht so ein großes Problem darstellen wird
ich habe eine Batch geschrieben, die mir die Ordner in einem bestimmten Verzeichnis, in einer Excel-Datei ausgibt.

PROBLEM:

wie muss der Code aussehen, damit in der Excel-Datei auch die Umlaute der Ordnernamen angezeigt werden und nicht durch ein " dargestellt werden (ja ich weiss, Ordnernamen immer ohne Umlaute.. )

Commandozeile sieht so aus:

dir X:\Root/b/-p> C:\Name_%date%.xls

Danke schonmal!
Mitglied: Biber
25.08.2010 um 17:22 Uhr
Moin datenfluss,

Excel wird bei dir vermutlich unter Windows laufen und somit die "Codepage 1252" verwenden und erwarten.
"Erwarten" heißt: davon ausgehen, wenn es (Excel) zum Öffnen eine *.xls-Datei gezwungen wird, dass dann auch *.xls-bzw. Windows bzw Codepage-1252-Zeichen vorliegen.

Darus ergibt sich eine zweigeteilte Antwort.
a) Du kannst aus deinem Einzeiler einen Zweizeiler machen und vor der DIR-Anweisung ein "CHCP 1252" (Change CodePage auf..) machen.
[Details siehe Forumssuche "CHCP" und/oder "Chcp /?" am CMD-Prompt.
b) du solltest dennoch nicht eine ".xls"-Datei erzeugen, sondern dass, was du vom CMD-Prompt kannst, eine *.txt oder .csv-Datei.
Mit beiden kann Excel excellent umgehen (kleines Wortspiel), insbesondere *.csv-Dateien sind für so etwas wie deine Anforderung gedacht.

Auch hier wieder: Details über unsere Suchfunktion.

Grüße
Biber
Bitte warten ..
Mitglied: datenfluss
10.09.2010 um 10:33 Uhr
servus biber!

danke erstmal für die Antwort! hat super funktioniert, und ich hab die Datei umgeschrieben auf ne .csv.

musste ein bisschen schmunzeln bei dem Wortspiel :D

jetzt noch eiiine Frage:

Kann man das so umsetzen, dass in der Ausgabedatei noch das Erstelldatum der Datei in ner Spalte ausgegeben wird? Wenn ja, wie?

danke!
Bitte warten ..
Mitglied: Biber
10.09.2010 um 23:08 Uhr
Moin datenfluss,

im Moment hat deine erzeugte *.csv-Datei ja nur eine (durch DIR /b x:\root erzeugte) Spalte mit den Dateinamen.

Um eine Spalte mit dem letzten Änderungsdatum anzufügen würde eine einfache FOR-Anweisung ausreichen:
{Beispiel am CMD-Prompt; Ausgabe erstmal nur auf Bildschirm]
for %i in (x:\root) do @echo %i;%~ti
So weit, so simpel... allerdings wird so das Änderungsdatum, nicht das Erstellungsdatum zurückgegeben.

Falls es wirklich das Erstellungsdatun sein soll/muss, dann lässt sich dieses über den DIR-Schalter /tc wie time created anzeigen.
dann ist allerdings statt einer einfachen FOR-Anweising eine FOR/F-Anweisung nötig.

Wieder zum Rantasten am CMD-Prompt:
for /f "delims=" %i in ('dir /b /a-d /tc x:\root') do @echo %i;%~ti
[ungetestet]

Falls das Ergebnis erfolgversprechend aussieht:

  • im Batch die Prozentzeichen verdoppeln
  • zur Umleitung der Ausgabe die komplette Zeile in runde Klammern setzen und ein ">y:\pfad\einName.csv" anfügen.

Grüße
Biber
Bitte warten ..
Mitglied: datenfluss
15.09.2010 um 12:37 Uhr
Servus,

ja das Änderungsdatum ist schon richtig!

ok, das hat soweit funktioniert. aaaaber, wie füge ich "for %i in (x:\root) do @echo %i;%~ti" jetz in der batch datei ein, dass er mir in der ausgabedatei hinter jedem ausgegebenen ordner in der nächsten spalte das änderungsdatum anzeigt?

klingt bissi kompliziert ich weiss

danke noch/schon mal!#

gruß
dennis
Bitte warten ..
Mitglied: Biber
20.09.2010 um 12:56 Uhr
Moin datenfluss,

eigentlich hatte ich die Beantwortung deiner Frage schon in meinem letzten Kommentar versucht...
Gemeint war mit den beiden unteren Spiegelstrichen

  • im Batch die Prozentzeichen verdoppeln
  • zur Umleitung der Ausgabe die komplette Zeile in runde Klammern setzen und ein ">y:\pfad\einName.csv" anfügen.

-> Wenn die CMD-Prompt-Zeile so aussähe
for /f "delims=" %i in ('dir /b /a-d /tc x:\root') do @echo %i;%~ti
-> würde eine Batchdatei unter Anwendung der beiden Schritte so aussehen
01.
(for /f "delims=" %%i in ('dir /b /a-d /tc x:\root') do @echo %%i;%%~ti) >y:\pfad\einName.csv
Testen mit einer "Ausgabedatei" nur auf dem Monitor kannst du es so:
01.
::---Inhalt einer Filelist2csv.cmd 
02.
@echo off & setlocal 
03.
if [%*] == [] set "outfile=con" 
04.
>%outfile% (for /f "delims=" %%i in ('dir /b /a-d /tc x:\root') do @echo %%i;%%~ti)
Anmerkung:
- Wenn das Änderungsdatum und nicht das Erstellungsdatum interessiert, dann einfach den DIR-Schalter /tc weglassen.
- Ob das ">%outfile" vor oder nach der eingeklammerten FOR-Anweisung steht ist egal.. mach es so, wie es für dich besser "lesbar" ist.

Grüße
Biber
Bitte warten ..
Mitglied: datenfluss
20.01.2011 um 10:02 Uhr
merci chef! hat funktioniert ;)
Bitte warten ..
Ähnliche Inhalte
Linux
gelöst Umlaute zählen - Bash-Script (5)

Frage von plutowitsch zum Thema Linux ...

Exchange Server
gelöst Exchange 2013 - Abwesenheitsnachricht Umlaute werden nicht dargestellt (3)

Frage von staybb zum Thema Exchange Server ...

PHP
gelöst PHP 7 und LDAP mit Umlauten (3)

Frage von wiesi200 zum Thema PHP ...

VB for Applications
gelöst DB-Abfrage in Excel mit Kriterien aus Excel (11)

Frage von JensDND zum Thema VB for Applications ...

Neue Wissensbeiträge
Windows Tools

Zeit für Energiesparmodus, Bildschirmabschaltung etc. schnell anpassen

Anleitung von hannsgmaulwurf zum Thema Windows Tools ...

Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(4)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Heiß diskutierte Inhalte
Microsoft Office
Office Druck fehler (18)

Frage von DaistwasimBusch zum Thema Microsoft Office ...

Windows Server
Zertifikat am DC erneuern funktioniert nicht (13)

Frage von takvorian zum Thema Windows Server ...