ANSI kod sayfasında Windows “dir” ifadesi nasıl kullanılır?


3

Bu, hem Windows XP hem de Windows 7 için geçerlidir.

Dosyalarımın bazılarının Avrupa karakterli isimleri var, örneğin a-diaeresis olarak da bilinen Alman umüm.

Bunlar, Windows Gezgini'nde ve ayrıca "dir" komutuna yanıt olarak bir komut kabuğu (cmd.exe) penceresinde de görüntülenir.

Bununla birlikte, eğer bu "dir" komutu bir dosyaya yönlendirilirse, örn.

dir > file.txt

daha sonra bu dosyadaki Avrupa karakterleri bir DOS kod sayfasında gösterilir; örneğin a-umlaut, ondalık 132 (altıgen 0x84) olarak temsil edilir. İstediğim bu değil. Dosyanın ANSI kod sayfasında olmasını istiyorum, örneğin a-umlaut ondalık basamak 228'dir (onaltılık 0xE4).

"Cmd /?" Komutunu veriyor hat dahil yardım bilgileriyle sonuçlanır

/A      Causes the output of internal commands to a pipe or file to be ANSI

Bu tam olarak istediğim gibi geliyor. Bununla birlikte, komutların herhangi biri

cmd /A
dir > file.txt
exit

veya eşdeğer tek komut satırı

cmd /A /C dir > file.txt

tam olarak aynı file.txt dosyasını üretir; Avrupa karakterleriyle hala DOS kod sayfasında.

Öyleyse sorum şu, ANSI kod sayfasına bir dosya yazmak için nasıl "dir" alabilirim?

  • Zengin

3
Unicode ile denediniz mi? /U ANSI yerine bayrak?
Breakthrough

OEM’ten ANSI’ye geçiş, DOS’tan Windows 3.1’e yükseltmek gibidir ... sonuçta daha fazla ıstıraba neden olur. Mümkünse Unicode kullanın.
grawity

Unicode için güzel bir eklenti, ancak birçok nedenden dolayı bunun tek baytlık karakterleri kullanan mevcut komut dizileriyle arayüzlenmesi gerekiyor.
Rich Pasco

Yanıtlar:


3

Sanırım "kutudan" kolay bir yol var.

chcp 1252
dir > file.txt

0

Bahçe yoluna "A" harfi ile giriliyorsunuz. /A seçenek "ANSI" yi "OEM" kod sayfalarından ayırmaz. 8 bit tek bayt / çoklu bayt karakter kümelerini 16 bit Unicode'dan ayırt eder /U seçenek). 8 bit SBCS / MBCS gibi bir Win32 programından çıktı CMD, bir konsola "OEM" kod sayfasında işlenir.


Tamam, JdeBP, ne dediğini anlıyorum: yardım bilgileri yanıltıcıdır. Ancak, OEM DOS kod sayfasından (durumumda 850) değil, "DIR" komutunun çıktısını ANSI kod sayfasında (Windows ISO için ISO 8859-1) nasıl elde edeceğim? Sanırım arama tablosuyla basit bir EXE filtresi yazabilir ve DIR'ımı bu borudan geçirebilirim, ya da belki de ilk olarak istediğim şeyi yapan DIR için tamamen yeni bir yazı yazabilirim. Ama elbette daha kolay bir yol var!
Rich Pasco

Bunu yapmanın bir yolunu buldum: programımı indir cp850win ve sonra komutu verin dir | cp850win > file.txt
Rich Pasco
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.