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, 5302 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
Microsoft Office
Hilfe bei Erstellung eines Suchfelds im Excel (1)

Frage von ZeeRee zum Thema Microsoft Office ...

VB for Applications
gelöst EXCEL Macro oder ähnliches gesucht (3)

Frage von reissaus73 zum Thema VB for Applications ...

Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

Tipp von tralveller zum Thema Batch & Shell ...

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 ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (36)

Frage von Datsspeed zum Thema Exchange Server ...

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

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

Internet Domänen
Nameserver ein Geist? (7)

Frage von zelamedia zum Thema Internet Domänen ...

Video & Streaming
Kamera mit 24-7 auf Website hat Aussetzer (6)

Frage von Calvus zum Thema Video & Streaming ...