0
votes

Lot Créez un dossier dans chaque sous-dossier et déplacez tous les fichiers .jpg dedans

J'ai fait ce fichier de commandes qui fait un dossier nommé des images et met tous les fichiers .jpg dedans.

@echo off
md Pictures
for %%i in ("*.jpg") do (
 move /Y "%%i" "Pictures" )
end


2 commentaires

Votre question est actuellement difficile, veuillez en prendre un autre regard, puis modifiez-la pour apporter les améliorations requises. Une fois que vous déplacez tous les fichiers dans le premier sous-répertoire, il n'y en a plus pour se déplacer dans un autre! Le moyen le plus simple d'expliquer est de fournir avant et après les structures d'arbres. Vous pouvez utiliser la commande arborescence pour créer au moins l'exemple avant: par exemple. arborescence x: \ répertoire / f . Il n'y a pas non plus de cette commande de ce type fin ! Si vous souhaitez récupérer tous les fichiers .jpg dans le répertoire actuel et tous les sous-répertoires, veuillez consulter l'aide de la commande pour la commande pour , pour /? .


Tapez pour /? et lisez environ / r interrupteur.


3 Réponses :


0
votes

En fait, je viens de le comprendre

@echo off
setlocal
for /f "usebackq tokens=*" %%a in (`dir /b /a:d`) do (
  rem enter the directory
  pushd %%a
  echo In Directory: %%a
  md Pictures
  for %%i in ("*.jpg") do (
  move /Y "%%i" "Pictures" )
  rem leave the directory
  popd
  )
endlocal


5 commentaires

Cela n'aidera pas les autres sauf si vous suivez les conseils que j'ai fournis dans mon commentaire sous la question, car votre tâche n'est effacée que lorsque le lecteur est capable de comprendre votre réponse. Veuillez éditer votre question, sinon cela sera inévitablement fermé pour être incertain.


J'ai changé la question. Espérons que c'est plus clair maintenant.


C'est mieux, mais TBF, la seule façon de comprendre ce que vous avez l'intention de faire est de lire la réponse ci-dessus. J'ai déjà expliqué que montrer auparavant et après est un bon moyen de l'expliquer, surtout donné que nous avons un grand public anglophone non nattonné .


Merci de votre aide. Votre code est beaucoup plus élégant. Si seulement je l'avais plus tôt! Merci encore.


Vous auriez pu l'avoir plus tôt, si votre question était plus claire! Et ce n'est pas seulement plus élégant, c'est mieux .



1
votes

Basé sur la réponse que vous avez fournie, je suggérerais que vous puissiez faire cela comme ça, dans une seule ligne : xxx

comme alternative, car pour / d peut Ne pas prendre tous vos répertoires, (il ignore les annuaires avec les attributs cachés et système) : xxx


0 commentaires

0
votes

Essayez ceci:

for /f %%a in ('dir /b /ad "Filepath"') do (
  md "%%~fa\Pictures"
  for %%b in ("*.jpg") do robocopy "%%~fb" "%%~fa\Pictures\" /mov
)


2 commentaires

Wasif, comme vous pouvez le constater par la propre réponse de l'OP, il n'y avait aucune intention de recouvrer les répertoires, simplement le niveau supérieur. La question n'était pas claire de la question et, malgré des informations sur l'OP de cette époque, ils n'ont pas fourni la clarification requise de manière à empêcher les autres, comme vous, d'afficher des réponses qui ne convenaient pas à la tâche prévue.


Ok Compo, je me souviendrai de votre suggestion.