Je voudrais normalement ouvrir le dossier parent et rechercher *
afin de sélectionner tous les fichiers des sous-dossiers, mais dans ce cas, j'ai plus d'un million de fichiers que je dois trier. Mon explorateur se bloque donc souvent lorsque je tente de copier autant de fichiers. à travers l'interface graphique. Je ne sais pas à quel point cela sera plus efficace grâce à l'invite de commande ou à un fichier de commandes, mais cela vaut la peine d'essayer, je suppose.
Ce que je dois faire est de faire en sorte que
|parent
| |123
| | 123abc.png
| |456
| | 456def.png
| |789
| | 789ghi.png
devient
|parent
| 123abc.png
| 456def.png
| 789ghi.png
Oui, ma structure de fichier actuelle contient les 3 premiers caractères du nom de fichier attribué au nom du dossier, si cela peut aider à les trier.
Voici un exemple de code:
Avec cette version, vous faites glisser le dossier à partir duquel vous souhaitez supprimer le sous-dossier vers le lot. Tous les fichiers des sous-dossiers sont déplacés dans le dossier parent. Je l'utilise pour les fichiers d'archives téléchargés qui ont ou n'ont pas de sous-dossier au hasard. Remarquez, il a été créé avec un seul sous-dossier, comme spécifique à mon cas.
'Shift' consiste à passer à l'argument suivant, lorsque vous faites glisser plusieurs sous-dossiers à la fois sur le script.
la source
Utilisez également la variable d’environnement %% ~ dpi qui fait référence au dossier dans lequel se trouvent les fichiers. Vous pouvez ensuite supprimer la barre oblique inversée qui renverrait le dossier parent des fichiers. Ci-dessous est juste que.
Le ! active le développement dynamique et peut être utilisé pour %% ~ i ainsi que pour ParFldr. Donc, le %% ~ je peux être! CurrFldr! Cela sera en fait nécessaire pendant vos tests car certains fichiers auront des chaînes que Batch n’aimera pas. Par pas comme, je veux dire qu'ils vont provoquer l'échec et la sortie du script. Je viens de changer tous les %% A en %% i pour plus de clarté. Cela ne fait vraiment aucune différence si un A a été utilisé ou un minuscule i L'important est d'utiliser systématiquement la même lettre, alors j'ai changé chaque %% A en un %% i.
la source
forfiles /s /m *.FILETYPE /c "cmd /c move @file .."
devrait déplacer n'importe quel fichier de FILETYPE spécifié dans son dossier parentla source