J'ai eu des sous-dossiers sous le dossier principal comme ci-dessous p>
Dans ces sous-dossiers, il existe fondamentalement 3 types de fichiers en standard que ci-dessous dans Sub1: P>
dans Sub2: Le fichier TXT et le fichier PKG manque de P3? en son nom p>
..... p>
maintenant je peux utiliser ci-dessous le code CD principal Pour / r %% g in (* .txt) faire si existez "%% ~ dpng" del "%% ~ dpng" p>
Supprimer est un moyen d'avoir supprimé * .p3? Fichier dans Sub1 et Sub2 en fonction de la condition si existent * .txt dans ce sous-dossier ... P>
J'espère que je mets clairement ... p>
merci p>
3 Réponses :
Après vos commentaires, je pense que c'est ce que vous voulez: Nous recherchons à nouveau, note em> j'ai ajouté echo avant les commandes *. TXT code> et obtenez leur nom, peu importe ce qu'ils sont appelés. Ensuite, nous testons si le même nom de fichier (à l'exclusion de l'extension
.txt code>) et d'ajouter un
.pkg code> extension. Ensuite, nous exécutons une autre boucle pour supprimer à nouveau toute extension, laquelle dans le cas où le nom a été dépouillé de l'extension pourrait / n'a pas pu contenir
p3 * code> alors si cette condition est vraie, cela signifie que nous avons trouvé à la fois < Code> FileName.txt code> et
FileName.pkg CODE> (Peu importe s'il contient P3 * ou non), nous exécutons simplement `del filename * (Ça excluant une extension. p>
del code> afin que vous puissiez tester et imprimer uniquement le résultat, supprimez uniquement
echo code> de La dernière ligne
Echo del %% ~ dpna * code> Une fois que vous êtes satisfait de ce que les résultats sont imprimés à l'écran. p> p>
Merci! Juste certains simplifient la question en ci-dessus.
Ensuite, définissez une variable, débarrassez-vous de P3 dans le nom et faites une carte sauvage sur celle-ci. aussi simple que cela.
@goodywp Je vous dis que, modifiez votre question, ajoutez de véritables exemples de fichiers afin que je puisse voir exactement ce à quoi ils ressemblent, ne pas ajouter de caractères drôles * ou quoi que ce soit, affichez simplement des paires de fichiers.
Certains dossiers ont également la P3 * mais ne veulent pas être supprimé uniquement si ce fichier P3 * a abcgefg.p3d.txt et abcdefg.p3d.pkg existent.
@goodywp OK, voyez la réponse éditée, si j'ai bien compris votre condition, c'est ce que vous voulez.
@goodywp Parce que vous n'avez pas lu mon poteau complètement, cela vous montrera ce qu'il fera, de supprimer réellement, supprimer le echo code> de la chaîne. Je vais le supprimer de ma réponse maintenant et vous essayez à nouveau.
@goodywp j'ai supprimé l'écho pour vous, copiez le code et réessayez.
@ Goodywp, je ne vais plus supporter ce fil plus longtemps, vos besoins continuent de changer.
Voici une autre meilleure hypothèse basée sur votre mauvaise explication:
@For /F "Delims=" %%A In ('Where /R . *.p3? 2^>Nul') Do @If Exist "%%~dpnA*.pkg" (If Exist "%%~dpnA*.txt" Del /A /F "%%A" >Nul 2>&1)
@goodywp, j'ai fait un très petit changement, Je ne ferai plus rien! I>
for /r %%G in (*.P3?) do if exist "%%~G.txt" del "%%~G" This will delete in sub1 9980000000113100_2C8C6ADEPatT.P3D if exist 9980000000113100_2C8C6ADEPatT.P3D.txt which does exist, so it does delete.This will delete in sub2 9980000001110000_00000000NARC.P3D if exist 9980000001110000_00000000NARC.P3D.txt which does not exist, so nothing to delete.
L'astérisque de fuite dans vos fichiers est-il destiné à être littéral ou à toute annexe?
Vos exemples d'entrée ne correspondent pas à vos exemples de code de sortie.
astérisque de fin signifie littéral.
Désolé déroutant. Je viens d'ajouter que le dossier SUB5 est l'exemple, car il disposait de format non standard des fichiers, la sortie n'est donc pas attendue.
Le caractère
* code> b> n'est pas autorisé dans un nom de fichier.
Il n'y a aucun moyen que vous ayez cette sortie avec le code et l'exemple de saisie que vous utilisez.