Jak radzić sobie z emoji w wierszu polecenia?

17

Punkt aktywny, z którym jestem połączony, ma identyfikator SSID 12346🐷. Muszę użyć netsh wlan show profile <SSID>polecenia, ale wydaje się, że cmd nie obsługuje Unicode. Co ja robię?

bleh

rahuldottech
źródło
Wystarczy użyć nowego terminalu Windows.
Richie Bendall
@RichieBendall Oczywiście nie było takiej opcji, kiedy zadano to pytanie, i nadal nie jest i nadal nie będzie jednym z wielu starszych systemów.
rahuldottech
Poprawny. Dodałem komentarz, aby nadać temu pytaniu lepszą przewagę w przyszłości.
Richie Bendall

Odpowiedzi:

19

Sporo eksperymentowałem z emoji w cmd i do takich wniosków doszedłem:

  1. W większości przypadków możesz zastąpić emoji?? .
    Oto, co netsh wlan show profilepokazuje mi polecenie (które wyświetla wszystkie profile sieciowe): W powyższym przypadku możesz po prostu uruchomić polecenie .
    bleh2
    netsh wlan show profile 12346??
  2. Ale ... KONFLIKT! Co jeśli są dwa identyczne identyfikatory SSID, tylko z różnymi emoji?
    Aby to przetestować, utworzyłem drugi punkt dostępu z identyfikatorem SSID 12346😁. CMD oczywiście nie potrafił rozróżnić. Ale wynik miał coś interesującego:bleh3
    netsh wlan show profile 12346??

    Profile 12346?? on interface Wi-Fi: 
    ======================================================================= 
    
    Applied: All User Profile    
    
    Profile information 
    ------------------- 
        Version                : 1
        Type                   : Wireless LAN
        Name                   : 12346??
    
    Connectivity settings 
    --------------------- 
        Number of SSIDs        : 1
        SSID name              : "12346dY~?"
    
    
    [[REDACTED IRRELEVANT INFO]]
    
    
    Profile 12346?? on interface Wi-Fi: 
    ======================================================================= 
    
    Applied: All User Profile    
    
    Profile information 
    ------------------- 
        Version                : 1
        Type                   : Wireless LAN
        Name                   : 12346??
    
    Connectivity settings 
    --------------------- 
        Number of SSIDs        : 1
        SSID name              : "12346dY?·"
    

    Najpierw zauważamy, że cmd (bardzo sprytnie) uruchamia polecenie dla obu identyfikatorów SSID. Ale chcemy uruchomić go tylko dla jednego identyfikatora SSID ...
    Po drugie, widzimy, że jednemu przypisano identyfikator SSID 12346dY~?, a drugiemu 12346dY?·. Jednak użycie jednego z nich w poleceniu powoduje tylko błąd ... Bummer!

  3. Więc co robimy?? Całkiem proste: używasz klawiatury dotykowej (w systemie Windows 10), aby wstawić emoji do konsoli lub możesz skopiować i wkleić emoji z innego miejsca, oba działają idealnie, nawet jeśli emoji nie jest wyświetlane poprawnie.

  4. Co z plikami i folderami? Utworzyłem dwa foldery 😎i 😆. Oto, co treepokazuje: na bleh jeszcze raz szczęście dla nas możemy po prostu tabprzewijać nazwy folderów w monicie, ale znowu nie mamy możliwości przeglądania nazw folderów. W takim przypadku jedną z opcji jest zmiana nazwy folderów za pomocą renpolecenia. Inną opcją jest użycie dirpolecenia do sprawdzenia właściwości plików / folderów i ustalenia, który z nich jest potrzebny.

  5. Wystarczy użyć ConEmu!
    ConEmu najwyraźniej ma lepszą obsługę Unicode: ZWYCIĘSTWO!

rahuldottech
źródło
3
Ciekawa lektura (i źródło ostatniego obrazu): Nadużywanie Emoji w systemie Windows
rahuldottech
Wydaje się, że aktualizacja Windows 10 Creators Update popycha cię do korzystania z PowerShell cmd, czy jest tam obsługiwany Unicode?
Mokubai
1
AKTUALIZACJA! Ten zrzut ekranu pokazuje polecenie niezbędne do włączenia Unicode w PowerShell. Dzięki @Bob !
rahuldottech
Aby to wyjaśnić , zrzut ekranu w ostatnim komentarzu @ Rahul2001 pochodzi z programu PowerShell ISE (dołączonego do PS), a nie z podstawowej konsoli. To nie chcp 65001ma sensu, ale najpierw trzeba wywołać jakieś zewnętrzne polecenie, aby zmusić ISE do przydzielenia konsoli i umożliwienia [Console]::OutputEncodingpracy; równina chcpteż działa.
Bob