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, 5300 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 ..
Neuester Wissensbeitrag
Windows 10

Sticky Notes - Autostart unterbinden

Tipp von Pedant zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
gelöst 3 Excel Dateien, gleich umkodieren? (5)

Frage von Akeipra zum Thema Microsoft Office ...

Outlook & Mail
Outlook 2016 Excel Preview

Frage von ilsinger zum Thema Outlook & Mail ...

Microsoft Office
gelöst Excel VBA: Automatische Konvertierung von Textdatei (.txt) zu Exceldatei (.xlsx) (7)

Frage von Booster07 zum Thema Microsoft Office ...

VB for Applications
gelöst VB Skript Excel Datei (3)

Frage von Frager zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Flatrates
DeutschlandLAN der Telekom - welche internen IPs? (19)

Frage von qualidat zum Thema Flatrates ...

LAN, WAN, Wireless
Wie Gäste ins Internet bringen? (15)

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

Linux
gelöst Schmaler Scrollbalken in Python-Anwendung (14)

Frage von indi955 zum Thema Linux ...