Je veux utiliser ls dans l'invite de commande Windows et lui faire exécuter la commande dir.
Comment puis je faire ça?
Je veux utiliser ls dans l'invite de commande Windows et lui faire exécuter la commande dir.
Comment puis je faire ça?
Réponses:
Vous pourriez:
ls.bat
et le faire contenir dir
uniquement la commandels.bat
fichier existe à votre PATH
variable d'environnementVous pouvez ensuite exécuter à ls
partir d'une invite de commande.
ls dir
? Je pense que vous auriez besoin de modifier le ls.bat
pour gérer les arguments ... ou vous pouvez essayer les alias: superuser.com/questions/49170/create-an-alias-in-windows-xp
Vous pouvez résoudre cette question avec une simple commande:
echo @dir %* > %systemroot%\system32\ls.bat
Assurez-vous que vous exécutez cmd.exe
d'abord en tant qu'administrateur si vous êtes sur Vista et plus
dir %*
place pour permettre à n'importe quel nombre d'arguments de ligne de commande d'être transmis à dir via ls.bat. Sinon, en utilisant dir %1
, au plus vous ne pouvez utiliser qu'un seul argument lorsque vous utilisez le script ls.
@dir %*
supprimera également la ligne supplémentaire, donc elle est encore plus identique àdir
@
; astuce de syntaxe à utiliser pour éviter un désordre de sortie. Cependant, ce serait tellement plus facile si Windows était compatible POSIX. Au moins on peut rêver.
C'est une vieille question mais pour mémoire:
http://gnuwin32.sourceforge.net/packages/coreutils.htm
Vous donne des ls et bien plus encore!
ls *
et dir *
ne faites pas la même chose, donc aliaser dir est un peu pantalons.
C:\Program Files (x86)\GnuWin32\bin
à votre chemin
Le moyen le plus simple que j'ai trouvé est:
bin
répertoire de Git à votre variable Path. Le mien était situé à C:\Program Files\Git\usr\bin
.ls
dans toute sa splendeur.ls
et à tous ses arguments optionnels. Juste une légère mise à jour, j'ai installé la dernière version de git pour Windows et le ls.exe se trouve maintenant dans C: \ Program Files \ Git \ usr \ bin
J'ai une solution mais c'est sale:
Créez un fichier nommé ls.bat contenant uniquement "dir".
Placez-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: /superuser/49170/create-an-alias-in-windows-xp
Si Node.js est installé sur votre système, vous pouvez l'installer à partir de Cash , une bibliothèque que j'ai écrite pour les commandes Linux sous Windows:
npm install cash-ls -g
npm install cash-global -g
. Ce serait bien d'ajouter ls -l
aussi ll
(LL).
L'invite de commande Windows 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 dans 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 de bonnes choses à savoir.
+1 sur le post ci-dessus suggérant d'installer git pour Windows et d'ajouter le répertoire bin à vos variables de chemin.
Une autre façon dont j'ai obtenu touch, 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 de votre système. Les paramètres par défaut et les packages doivent inclure ce dont vous avez besoin pour que vous n'ayez rien à changer une fois que vous arrivez à l'écran des packages.
Après l'installation, copiez le chemin du dossier Cygwin dans vos variables de chemin d'environnement. Par exemple; si vous avez installé cygwin dans C: \ Cygwin, vous ajouterez les éléments suivants aux variables de chemin système 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é ce qui suit à mes variables de chemin d'environnement système:
; C: \ cygwin64 \ bin
Redémarrez votre terminal s'il est ouvert. Tapez ensuite ls et vous verrez une liste de répertoires.
Consultez ce qui suit si vous n'êtes pas familiarisé avec la définition des variables d'environnement PATH:
Si vous souhaitez simplement que cmd soit reconnu ls
comme un alias pour dir
, vous pouvez utiliser la doskey
commande (à partir de cette réponse sur le superutilisateur ).
Cela ne modifie pas la gestion des paramètres de ligne de commande d'origine de la commande dir.
Je recommande la recette suivante.
DOSKEY
et $*
pour créer votre ls
commande.Par exemple, votre commande peut sembler
DOSKEY ls=dir
DOSKEY sublime="C:\Program Files\Sublime Text 2\sublime_text" $*
$*
utile pour les commandes qui prennent des arguments. Par exemple, ici, j'aime pouvoir faire sublime my_code.c
.
Le registre de cmd est à HKEY_CURRENT_USER -> Software -> Microsoft -> Command Processor. Créez une entrée de valeur de chaîne appelée AutoRun avec le chemin complet du fichier (pas le dossier contenant) tel que%USERPROFILE%\custom_command.cmd
. Ensuite, chaque fois que cmd est exécuté, votre commande sera chargée!
Vous pouvez également ajouter des éléments plus utiles au fichier de commandes. Voir ici pour un exemple de modèle.
Une autre solution qui a fonctionné pour moi est d'utiliser UnxUtils , qui ajoute plusieurs utilitaires à partir de fichiers exécutables (y compris ls
, sed
et grep
).
Pour utiliser: téléchargez le code source . Décompressez. Ajoutez le UnxUtils\usr\local\wbin
chemin d'accès à la variable Windows PATH. Démarrez une nouvelle instance CMD.
Ls ne fonctionnerait sûrement pas comme une commande unix pour les lots. Si vous vérifiez% 1 pour -l ou -a etc. et toutes leurs combinaisons, cela fonctionnerait ...
Vous pouvez suivre ce guide: https://gist.github.com/vladikoff/38307908088d58af206b
TL; DR : passez /K path/to/custom/init_cmd.bat
à votre commande "shell startup".
J'utilise ConsoleZ comme enveloppe de shell, donc dans mon cas, je peux trouver l'option de configuration dans "onglets", puis j'ai défini le chemin du shell "C:\Windows\System32\cmd.exe "/K C:\cmd_init.bat""
comme ceci .
Où C:\cmd_init.bat
est le script batch contenant mes macros, voici ce que je ferais:
@echo off
doskey ls=dir /b
rem other macro stuff..
Désolé pour le formatage et 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 peut appeler à ls
partir du bash Linux. La commande suivante crée la ls
commande dans System32:
echo @bash -c "ls %*" > %systemroot%\system32\ls.bat
(La fonction de sous-système Linux doit être activée / installée en premier)
Voici mon code source C # et mon binaire .
Ajoutez simplement ls.exe quelque part et ajoutez le chemin à la variable d'environnement path.