2010-11-24 4 views
0

Je voudrais émuler la commande d'invite de ligne de commande standard "CD" pour créer une version étendue qui, par exemple, fournit une capacité de recherche. Ma recherche ne m'a pas conduit à un moyen de changer le chemin du répertoire actuel d'un shell hôte.Comment émuler une commande Cmd Shell (par exemple "cd") et affecter l'état de l'invite de commande à la sortie

+0

quel système d'exploitation utilisez-vous? –

+0

Cette question est spécifique à la plateforme Windows. – Freebooter

Répondre

1

Il est assez flou que la commande CD de l'interpréteur de commandes fasse quoi que ce soit pour améliorer une «fonction de recherche». Commencer avec le bon répertoire 'CD' n'est pas difficile. Utilisez simplement CreateProcess pour démarrer cmd.exe. L'argument lpCurrentDirectory vous permet de définir le répertoire en cours. ShellExecuteEx() fonctionne aussi, un peu plus facile à obtenir.

+0

L'idée de base est d'autoriser les caractères génériques lors du déplacement vers un autre répertoire. Un exemple pourrait être d'aller de C: \ à C: \ Program Files avec une commande telle que "CX pr *". La commande recherchera une correspondance dans l'arborescence de répertoires (à la fois vers le haut et vers le bas) jusqu'à ce qu'une correspondance soit trouvée. Les correspondances fournissent des invites à l'utilisateur pour accepter et effectuer le changement. J'ai essayé CreateProcess() mais il génère une nouvelle fenêtre d'invite de commande avec le chemin correct mais ne fonctionnerait pas pour moi. J'ai vu des utilitaires simples avec une interface graphique qui présente une sélection de chemin qui peut rendre le changement si cela semble être possible. – Freebooter

+1

Je n'ai pas la moindre idée de ce dont vous parlez. Il suffit d'appuyer sur la touche TAB dans une fenêtre en mode console et il complète automatiquement un fragment de nom de fichier. –

Questions connexes