J'avais l'habitude de travailler sur bash et de bénéficier de nombreux pseudonymes. Existe-t-il un moyen équivalent dans la ligne de commande Windows?
Je ne veux pas simuler un environnement Linux, alors cygwin n'est pas un choix. J'ai juste besoin d'un raccourci pour une très longue commande, comme cd a_very_long_path
.
windows
command-line
StarPinkER
la source
la source
doskey
(ne vous fiez pas au nom, ce n’est pas l’ancien doskey MS DOS). Utilisezdoskey /?
pour plus d'informations. En dehors de cela, j'ai bien peur que cette question ne soit pas traitée ici.Réponses:
Comme Christian.K l'a dit dans son commentaire, la commande DOSKEY peut être utilisée pour définir des macros analogues à des alias.
Les paramètres de macro sont référencés dans la définition via des
$
positions préfixées: à$1
travers$9
et$*
pour tous.Voir la documentation de doskey technet , ou tapez
doskey /?
ou àhelp doskey
partir de la ligne de commande pour plus d'informations.Mais il existe de sérieuses limitations avec les macros DOSKEY:
someMacro|findstr '^'
etdir|someMacro
ne.for /f %A in ('someMacro') do ...
échecLes limitations sont si graves que j'utilise rarement les macros DOSKEY.
Évidemment, vous pouvez créer des scripts batch au lieu de macros et vous assurer que les emplacements des scripts sont dans votre PATH. Mais ensuite, vous devez préfixer chaque script avec CALL si vous souhaitez utiliser le script dans un autre script.
Vous pouvez créer de simples "macros" de variables pour des commandes longues et souvent utilisées, mais la syntaxe est un peu délicate à taper, car vous devez développer la "macro" lorsque vous souhaitez l’utiliser.
Définition:
Utilisation (à partir de la ligne de commande ou du script)
la source
Vous pouvez créer un script batch et l'enregistrer dans votre chemin.
Sous Linux, vous pouvez créer un script et l'ajouter au dossier
~/bin
de Windows. Vous pouvez faire de même.Ajoutez
%USERPROFILE%\bin
à votrePATH
variable d'environnement. Puis enregistrez vos scripts ici.quickcd.cmd
Vous pouvez maintenant taper
quickcd
sur la ligne de commande.Il peut aussi être appelé dans un script en utilisant la
call
fonctionla source
Microsoft Windows [Version 10.0.17134.648]
/d
drapeau àCD
subst
Si vous essayez vraiment de contourner quelque chose comme ceci:
Vous pouvez utiliser la
subst
commande pour mapper ce long chemin sur une lettre de lecteur distincte.Ensuite, lorsque vous souhaitez accéder
m:
à ce dossier, vous pouvez simplement taper sur la ligne de commande.L'avantage de cela
doskey
est qu'il fonctionne dans tous les programmes de traitement par lots et s'affiche dans n'importe quelle boîte de dialogue de fichier de Windows.Si vous ne voulez plus le mappage:
la source
Vous pouvez utiliser le même truc, que Windows utilise: définissez une variable d’environnement (ou simplement une variable dans un contexte de lot), par exemple, il existe une variable d’environnement% windir% (et quelques autres).
ou
qui fait la même chose. Donc, tout ce que vous devez faire est:
après cela, vous pouvez faire (où que vous soyez):
ou
ou ce que vous voulez.
la source
Contrairement à Linux, dans Windows, les alias peuvent prendre des arguments et des paramètres peuvent être assignés pour les affecter dans leur définition.
La commande interne intégrée est doskey , ce qui signifie qu'il ne s'agit pas d'un fichier exécutable externe situé dans,
%SystemRoot%\System32
mais d'une fonctionnalitécmd.exe
dont il est lui-même situé,%SystemRoot%
ou les%Windir%
deux pointant vers unC:\Windows
dossier par défaut.Doskey définit les alias parmi beaucoup d'autres choses. Dans la terminologie Windows, les alias sont appelés macros. Pour définir un alias que vous utilisez
Ici
$1
pointe vers le premier argument et$*
pointe vers tous les arguments.J'utiliserais toujours
$*
des guillemets doubles$1
s'il n'y avait qu'un seul argument pour omettre les espaces traités comme des caractères spéciaux, à savoir comme des séparateurs (pour les commandes).De plus, vous pouvez définir vos macros d’
aliasdans un fichier séparé, par exempleLinuxAliases.macro
, puis le rechercher en utilisantIl ne chargera que tous les alias définis dans le fichier pour la session en cours , ce qui signifie que lorsque vous êtes en
exit
fin decmd.exe
processus (également appelé shell et invite de commande), ils sont supprimés.Pour avoir des alias permanents, vous pouvez taper la commande complète quelque part dans une clé regedit appelée AutoRun ou AutoCommand ou quelque chose de similaire, ce que je ne peux pas rappeler maintenant à côté de la syntaxe interne du fichier de macro: P
Voici la documentation officielle et encore meilleure pour la commande.
la source
J'ai créé un "alias" comme celui-ci spécialement pour changer de répertoire. Fondamentalement, j'ai créé un fichier nommé
fav.bat
et l' ai placé dans un dossier de PATH (par exemple, C: \ MyBatches):Ensuite, je peux accéder très rapidement à n’importe quel dossier prédéfini. J'ai écrit un article complet sur cette technique ici .
la source
en supposant que vous restez sur le même disque, c. -à- pas
D:
alorscd D:\somedir\
nécessaire.Dans mon cas, C: contient les fichiers système, mais tout le travail est sur D:
2 parties. Commencez par définir des répertoires de travail à l’aide d’un fichier de commandes.
disons localprofile.cmd . Vous pouvez en avoir plusieurs, exécutez-les au besoin.
Maintenant, utilisez un autre fichier de commande pour vous déplacer, en fonction des variables d'environnement que vous venez de définir.
wd.cmd
Et un exemple d'utilisation:
wd par lui-même est censé me montrer la liste des répertoires favoris. Cela fonctionne, mais je ne sais pas pourquoi je reçois ce message "CD inattendu".
Lots .cmd réguliers
En plus de la navigation dans les répertoires, vous pouvez créer un fichier foo.cmd quelque part sur votre chemin PATH et il peut s’agir d’un alias. N'oubliez pas que, contrairement aux interpréteurs de commandes Linux / OSX, les fichiers cmd peuvent affecter les variables d'environnement et la session, sans avoir besoin de les générer .
J'ai un cdbin.cmd pour me diriger, par exemple:
Et ceci est un pseudo-grep grep.cmd
en action (quel que soit le type / + 2 / + 10 signifie)
D:\home\work\fb440.dumper>grep class *.py | sort /+2 /+10
la source
Vous pouvez utiliser doskey.exe , voici un exemple:
Et maintenant, si vous tapez,
qcd
il sera envoyé à ce chemin.Voici de l'aide avec les macros doskey :
C'est la forme la plus simple, voici un exemple:
et si vous tapez
word
la sortie est:Vous pouvez utiliser $ 1- $ 9 pour les paramètres, voici un exemple:
et si vous tapez
npd
cela ouvrira le bloc-notes mais si nous taponsnpd test.txt
cela ouvrira test.txt dans le bloc-notes .Vous pouvez utiliser $ * pour tous les paramètres, voici un autre exemple:
et si vous tapez
prt This is short.
alors le résultat sera:Vous pouvez utiliser $ T pour plusieurs commandes, voici un exemple:
et si vous tapez
newline Hello and
alors le résultat sera:J'espère que tu comprends.
la source