Je veux utiliser ls dans l'invite de commande Windows et lui faire exécuter la commande dir.
Comment puis je faire ça?
Vous pourriez:
ls.bat
et le contenir uniquement avec la commande dir
ls.bat
existe à votre variable d'environnement PATH
Vous pouvez ensuite exécuter ls
à partir d'une invite de commande.
Vous pouvez résoudre cette question avec une simple commande:
echo @dir %* > %systemroot%\system32\ls.bat
Assurez-vous d’exécuter cmd.exe
en tant qu’administrateur d’abord si vous utilisez Vista ou une version ultérieure.
C'est une vieille question mais pour le compte rendu:
http://gnuwin32.sourceforge.net/packages/coreutils.htm
Vous donne ls et beaucoup plus!
Le moyen le plus simple que j'ai trouvé est:
bin
de Git à votre variable Path. La mine était située à C:\Program Files\Git\usr\bin
.ls
dans toute sa splendeur.J'ai une solution mais c'est sale:
Créez un fichier nommé ls.bat contenant uniquement "dir".
Mettez-le dans C:\windows\system32 (ou n’importe quel répertoire dans PATH env var).
Cela (devrait) fonctionne!
Edit: Quelque chose de plus cohérent: https://superuser.com/questions/49170/create-an-alias-in-windows-xp
La commande Windows Invite pour Vista/7 autorisera les liens symboliques NTFS, exécutez cmd.exe en tant qu'administrateur, puis:
mklink ls %System%\dir.exe
Configurez ensuite votre variable d’environnement PATH pour inclure l’emplacement du lien que vous venez de créer.
Si vous voulez plus que la commande 'ls', vous devriez regarder cygwin .
EDIT- Je viens de réaliser dir.exe
n'est pas un programme séparé, donc cela ne fonctionne pas vraiment. Mais mklink
et cygwin sont des informations utiles.
+1 sur le message ci-dessus, suggérant d'installer git pour Windows et d'ajouter le répertoire bin à vos variables de chemin.
Une autre façon de me toucher, ls et beaucoup d’autres commandes UNIX fonctionnant dans cmd.exe sur mes machines Windows 8 et Windows 7.
Allez sur le site suivant pour installer Cygwin
https://www.cygwin.com/install.html
Installez la version 32 ou 64 bits pour votre système. Les paramètres et les packages par défaut doivent inclure ce dont vous avez besoin afin que vous n'ayez rien à changer une fois sur l'écran des packages.
Après l’installation, copiez le chemin du dossier Cygwin dans les variables de votre chemin d’environnement. Par exemple; Si vous avez installé cygwin dans C:\Cygwin, vous ajouterez les éléments suivants aux variables de chemin d'accès de votre environnement:
; C:\Cygwin\bin
Sur mon système, j'ai installé la version 64 bits et le nom et le chemin du dossier par défaut étaient C:\cygwin64. J'ai donc ajouté les éléments suivants aux variables de chemin d'accès de mon environnement système:
; C:\cygwin64\bin
Redémarrez votre terminal s'il est ouvert. Ensuite, tapez ls et vous verrez une liste de répertoires.
Consultez la section suivante si vous n'êtes pas familier avec la définition de variables d'environnement PATH:
mon ls.bat était en dessous
@dir %*
qui peut transférer des arguments de cli
ls /b
ls /w
mettez-le dans% windir% ou dans n'importe quel répertoire de votre variable% PATH%.
Assurez-vous simplement de sauvegarder le fichier avec l'encodage ANSI :)
vous pouvez également utiliser cygwin et utiliser la commande ls directement avec tous les autres outils de ligne de commande Unix auxquels vous êtes peut-être habitué.
Si vous voulez juste que cmd reconnaisse ls
comme un alias pour dir
, vous pouvez utiliser la commande doskey
(de cette réponse sur superutilisateur ).
Cela ne modifie pas le traitement des paramètres de ligne de commande d'origine de la commande dir.
Une autre solution qui a fonctionné pour moi consiste à utiliser nxUtils , qui ajoute plusieurs utilitaires à partir de fichiers exécutables (notamment ls
, sed
et grep
).
Pour utiliser: télécharger code source . Décompressez. Ajoutez le chemin UnxUtils\usr\local\wbin
à la variable Windows PATH. Démarrer une nouvelle instance CMD.
Je recommande la recette suivante.
DOSKEY
et $*
pour créer votre commande ls
.Par exemple, votre commande peut ressembler àDOSKEY ls=dir
DOSKEY sublime="C:\Program Files\Sublime Text 2\sublime_text" $*
$*
est utile pour les commandes utilisant des arguments. Par exemple, ici, j'aime bien pouvoir faire sublime my_code.c
.
Le registre pour cmd se trouve à l'adresse HKEY_CURRENT_USER -> Logiciel -> Microsoft -> Processeur de commandes. Créez une entrée de chaîne appelée AutoRun avec le chemin d'accès complet du fichier (pas le dossier contenant), tel que %USERPROFILE%\custom_command.cmd
. Alors chaque fois que cmd est lancé, votre commande sera chargée!
Vous pouvez également ajouter d'autres éléments utiles au fichier de commandes. Voir ici pour un exemple de modèle.
Vous pouvez suivre ce guide: https://Gist.github.com/vladikoff/38307908088d58af206b
TL; DR : transmettez /K path/to/custom/init_cmd.bat
à votre commande "Démarrage du shell".
J'utilise ConsoleZ comme enveloppe pour le shell, donc dans mon cas, je peux trouver l'option d'installation dans les "onglets", puis je règle le chemin du shell sur "C:\Windows\System32\cmd.exe "/K C:\cmd_init.bat""
comme ceci .
Où C:\cmd_init.bat
est le script de traitement par lots contenant mes macros, voici ce que je rechercherais:
@echo off
doskey ls=dir /b
rem other macro stuff..
Désolé pour le formatage et d’autres erreurs, c’est la première fois que je réponds ici. J'espère que ça aide!
Quelqu'un qui utilise le sous-système Linux pour Windows pourrait appeler ls
à partir du bash Linux. La commande suivante crée la commande ls
dans System32:
echo @bash -c "ls %*" > %systemroot%\system32\ls.bat
(La fonctionnalité de sous-système Linux doit d'abord être activée/installée)
Certes, ls ne fonctionnerait pas comme une commande unix pour les lots. Si vous vérifiez% 1 pour -l ou -a etc. et toutes leurs combinaisons, cela fonctionnera ...