6
votes

Comment supprimer les préfixes dans les chaînes sur la ligne de commande Windows?

Supposons que je voulais faire écho à chaque exécutable à l'intérieur du dossier% programfiles% programfiles xxx

mais il donne xxx xxx

Comment supprimer ces préfixes?


2 commentaires

Quel est le préfixe pour vous? Seulement le premier niveau? Que voulez-vous pour C: \ PROGAM Files \ Program3 \ Application \ Bin \ Program3.exe ?


@Jeb je veux programme3 \ application \ bin \ programme3.exe car le préfixe est "C: \ Program Files"


3 Réponses :


5
votes

Mettez ceci dans un fichier de commandes et courez, il devrait faire le travail.

@echo off
setlocal ENABLEDELAYEDEXPANSION
cd %programfiles%
for /r . %%i in (*.exe) do (
    set pth=%%~fi
    set val=!pth:%cd%\=!
    echo !val!
)


0 commentaires

8
votes

Vous pouvez utiliser la chaîne remplacer la fonction de lot xxx


0 commentaires

0
votes

Cette réponse est basée sur JEBS

Celui-ci est si votre fichier de commandes n'est pas sur le même lecteur que que vous travaillez à une approche différente doit être prise.

Le code a des commentaires inclus. xxx


4 commentaires

Au lieu de cela, vous pouvez utiliser CD / D C: \ Fichiers de programme \ Fichiers communs


Merci de me le faire savoir. Modifié le post.


Mais maintenant, vous n'avez pas besoin de définir dirbase = ... , SET DIRDRIVE = ... NOR % DIRDRIVE% plus


Merci encore. J'ai dû quitter le Définir Dirbase dans le présent, car il s'agissait d'un exemple du fichier de commandes étant exécuté à partir d'un autre lecteur.