Windows komut isteminde ls nasıl oluşturulur?


114

Windows komut isteminde ls kullanmak ve dir komutunu çalıştırmasını istiyorum.

Bunu nasıl yapabilirim?


4
Cevaplardan bazıları oldukça ilginç, ancak 'dir' komutunun tam olarak nesi yanlış?
Matt Donnan

3
@MattDonnan Ben sadece ls'ye alıştım ve pencerelerde yaptığım zaman komik bir surat yapıyorum. Artık değil ^^
aF.

1
@DavidHeffernan pencerelerde olmadığı için mi?
aF.

1
Elbette öyle. Her gün kullanırım.
David Heffernan

1
@aF. Windows 7 kullanıyorum, ancak ls'yi herhangi bir Windows sürümünde çalıştırıyorum. Windows'un ls ile birlikte geldiğini söylemiyorum, sadece açık kaynaklı olması ve iyi Windows bağlantı noktalarına sahip olması, onu Windows'ta çalıştırmanın önemsiz bir şey. GnuWin32'ye bakın.
David Heffernan

Yanıtlar:


117

Yapabilirdiniz:

  • adlı bir toplu iş dosyası oluşturun ls.batve diryalnızca komutu içermesini sağlayın
  • ls.batdosyanın bulunduğu dizini PATHortam değişkeninize ekleyin

Daha sonra lsbir komut isteminden çalıştırabilirsiniz .


8
Neden ls.bat dosyasını system32 klasörüne koymuyorsunuz ki PATH
David 天宇 Wong

2
@David 天宇 Wong, kullanıcının bu klasöre yazma erişimi olmaması çok olası.
hmjd

2
args ile kullanıyorsanız bu hala çalışıyor ls dirmu :? Sanırım değiştirgeleri ls.batişlemek için değiştirmelisiniz ... ya da diğer adları deneyebilirsiniz: superuser.com/questions/49170/create-an-alias-in-windows-xp
nicorellius

Beğendim: @echo off \ ndir / w% 1% ls formatına yaklaşmak için
mrcrowl

mükemmel cevap, bu konuda yorum yapmak mümkün olmamalı ;-)
Bamboomy

248

Bu soruyu basit bir komutla çözebilirsiniz:

echo @dir %* > %systemroot%\system32\ls.bat

cmd.exeVista ve üzerindeyseniz önce yönetici olarak çalıştığınızdan emin olun


14
Keşke bunu birden fazla değerlendirebilseydim. Harika çalıştı.
MrHappyAsthma

4
Bu daha iyidir, çünkü yine de dir seçeneklerini kullanabilirsiniz.
ajon

17
Bunun dir %*yerine, ls.bat aracılığıyla herhangi bir sayıda komut satırı bağımsız değişkeninin dir'e iletilmesine izin vermek için kullanmanızı öneririm. Aksi takdirde, kullanarak dir %1, en fazla, ls betiğini kullanırken yalnızca bir bağımsız değişken kullanabilirsiniz.
Adaline Simonian

2
@Vartan, yorumunuzun "daha fazla göster" eşiğinin altındaki ilk yorum olması çok yazık. Umarım @secghost bunu görür ve bir gün yanıtlarını değiştirir. Yapmanın @dir %*fazladan çizgiyi de kaldıracağını eklemek isterim , böylece daha da özdeşdir
Kaptan Adam

1
@CaptainMan Oh, evet! Tamamen unuttum @; bir çıktı karmaşasından kaçınmak için kullanılacak şık sözdizimi biti. Yine de, Windows POSIX uyumlu olsaydı çok daha kolay olurdu. En azından hayal edebiliyoruz.
Adaline Simonian


18

Bulduğum en kolay yol:

  1. Windows için Git'i yükleyin
  2. Ekle binsizin Yolu değişkenine Git dizinini. Benimki yerindeydi C:\Program Files\Git\usr\bin.
  3. Bir komut istemi başlatın ve lstüm ihtişamıyla keyfini çıkarın .

3
lsTüm isteğe bağlı argümanların tam işlevselliğine erişim sağlayan harika bir öneri . Küçük bir güncelleme, Windows için git'in en son sürümünü yükledim ve ls.exe artık C: \ Program Files \ Git \ usr \ bin
phil

Evet, ya da git klasöründe (cmd yerine) bash.exe'yi başlatın ve ~ tam bir kabuğun (ls ile) keyfini çıkarın.
Johan

git bash iğrenç, yol seçeneğini seviyorum
omikes

16

Bir çözümüm var ama kirli:

Yalnızca "dir" içeren ls.bat adlı bir dosya oluşturun.

Bunu C: \ windows \ system32'ye (veya PATH env var içindeki herhangi bir dizine) koyun.

Bu işe yarıyor!

Düzenleme: Daha tutarlı bir şey: /superuser/49170/create-an-alias-in-windows-xp


9

Eğer varsa node.js sisteminizde yüklü, sen yükleyebilirsiniz Nakit , ben Windows üzerinde Linux komutları için yazdığı bir kütüphane:

npm install cash-ls -g

Windows'ta linux kullanıcısı için şimdiye kadarki en iyi çözüm npm install cash-global -g,. Ayrıca (LL) ls -lolarak eklemek harika olur ll.
user2925656

Kurtarıcı arkadaşı
HebleV

6

Vista / 7 için Windows komut istemi, NTFS sembolik bağlantılara izin verir, cmd.exe'yi yönetici olarak çalıştırın ve ardından:

mklink ls %System%\dir.exe

Ardından, PATH ortam değişkeninizi yeni oluşturduğunuz bağlantının konumunu içerecek şekilde ayarlayın.

'Ls' komutundan daha fazlasını istiyorsanız, cygwin'e bakmalısınız .

DÜZENLEME- Henüz farkedilen dir.exeayrı bir program değil, bu yüzden bu gerçekten işe yaramıyor. Ancak mklinkcygwin, bilinmesi gereken güzel şeylerdir.


+1, bunun windows xp olduğunu söylemeyi unuttum ama bu windows vista / 7 için iyi :)
aF.

4

Yukarıdaki gönderide, windows için git yüklemenizi ve dizin bölmesini yol değişkenlerinize eklemenizi öneren +1.

Windows 8 ve Windows 7 makinelerimde cmd.exe'de çalışan touch, ls ve diğer UNIX komutlarının bir başka yolu.

Cygwin'i yüklemek için aşağıdaki siteye gidin

https://www.cygwin.com/install.html

Sisteminiz için 32 veya 64 bit sürümünü yükleyin. Varsayılan ayarlar ve paketler ihtiyacınız olanı içermelidir, böylece paketler ekranına geldiğinizde hiçbir şeyi değiştirmeniz gerekmez.

Kurulumdan sonra, Cygwin klasör yolunu ortam yolu değişkenlerinize kopyalayın. Örneğin; cygwin'i C: \ Cygwin'e yüklediyseniz, aşağıdakileri ortam sistem yolu değişkenlerinize ekleyeceksiniz:

C: \ Cygwin \ bin

Sistemime 64bit sürümünü kurdum ve varsayılan klasör adı ve yolu C: \ cygwin64 idi. Bu yüzden sistem ortamı yol değişkenlerime aşağıdakileri ekledim:

C: \ cygwin64 \ bin

Açıksa terminalinizi yeniden başlatın. Sonra ls yazın ve bir dizin listesi göreceksiniz.

PATH ortam değişkenlerini ayarlama konusunda bilgi sahibi değilseniz aşağıdakilere bakın:

Süper Kullanıcı Bağlantısı 1

Süper Kullanıcı Bağlantısı 2


3

Sadece cmd'nin lstakma ad olarak tanımasını diristiyorsanız, doskeykomutu kullanabilirsiniz ( bu yanıttan süper kullanıcı ).

Bu, dir komutunun orijinal komut satırı parametre işlemesini değiştirmez.


3

Cygwin'i de kullanabilir ve sadece ls komutunu, alışkın olabileceğiniz diğer tüm unix komut satırı araçlarıyla birlikte kullanabilirsiniz.


3

ls.bat'ım aşağıdaydı

@dir %*

cli argümanlarını aktarabilen

ls /b
ls /w

% windir% veya% PATH% değişkeninizdeki herhangi bir dizine koyun.

Dosyayı ANSI kodlamasıyla kaydettiğinizden emin olun :)


2

Aşağıdaki tarifi tavsiye ederim.

  1. Kullanım DOSKEYve $*oluşturmak için sizinlsKomutunuzu .
  2. Bir .bat / .cmd dosyasına kaydederek komutu kalıcı hale getirin ve dosyanın yolunu kayıt defterine ekleyin.

Örneğin, komutunuz
DOSKEY ls=dir
DOSKEY sublime="C:\Program Files\Sublime Text 2\sublime_text" $*
$*, bağımsız değişkenleri alan komutlar için yararlı gibi görünebilir . Örneğin, burada yapabilmeyi seviyorumsublime my_code.c .

Cmd için kayıt defteri HKEY_CURRENT_USER -> Yazılım -> Microsoft -> Komut İşlemcisi adresindedir. AutoRun adlı dize değerli bir girdi oluşturun ve dosyanın tam yolunu (içeren klasör değil) gibi %USERPROFILE%\custom_command.cmd. Sonra her cmd çalıştırıldığında, komutunuz yüklenecektir!

Toplu iş dosyasına daha yararlı şeyler de ekleyebilirsiniz. Örnek bir şablon için buraya bakın .


2

Benim için çalıştı Başka bir çözüm kullanımı etmektir UnxUtils (dahil çalıştırılabilir dosyalarından birden araçları ekler ls, sedve grep).

Kullanmak için: kaynak kodunu indirin . Sıkıştırılmış. UnxUtils\usr\local\wbinWindows PATH değişkeninin yolunu ekleyin . Yeni bir CMD örneği başlatın.


0

Elbette ls, gruplar için bir unix komutu olarak çalışmaz. -L veya -a vb. İçin% 1'i ve bunların tüm kombinasyonlarını kontrol ederseniz, işe yarayacaktır ...


0

Bu kılavuzu takip edebilirsiniz : https://gist.github.com/vladikoff/38307908088d58af206b

TL; DR : /K path/to/custom/init_cmd.bat"kabuk başlatma" komutunuza iletin.

ConsoleZ'yi kabuk sarmalayıcım olarak kullanıyorum, bu yüzden benim durumumda kurulum seçeneğini "sekmeler" de bulabilirim ve ardından kabuk yolunu "C:\Windows\System32\cmd.exe "/K C:\cmd_init.bat"" böyle ayarlıyorum .

C:\cmd_init.batMakrolarımı içeren toplu komut dosyası nerede , şunun için giderdim:

@echo off

doskey ls=dir /b
rem other macro stuff..

Biçimlendirme ve diğer hatalar için özür dilerim, burada ilk kez cevap veriyorum. Umut ediyorum bu yardım eder!


0

Windows için Linux Alt Sistemini kullanan biri Linux bashından arayabilir ls. Aşağıdaki Komut, lsKomutu System32 içinde oluşturur :

echo @bash -c "ls %*" > %systemroot%\system32\ls.bat

(Önce Linux Alt Sistemi özelliği etkinleştirilmeli / kurulmalıdır)


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.