Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
insérer/généré/créé un fichier EMPTY.TXT dans chaque dossier
Auteur Message
Répondre en citant
Message insérer/généré/créé un fichier EMPTY.TXT dans chaque dossier 
bonjour,
suite à une précédente demande, j'ai pu obtenir le photocopie de mon arborescence
mais celle ci est vide ( car fresh copy )


j'ai essayer de zipper celle ci pour l'envoyer par mail ( dans le but de transférer une arborescence de dossier partager à un autre users )
mais vu qu'il n'y a rien à copier le zip bug

mon souhait, via un CMD/BAT

là où je déposerais mon fichier CMD/BAT, insérer dans chaque dossier/sous dossier , un petit fichier de 1Ko max du style EMPTY.TXT

une fois la génération fait, je peux zipper mon arborecence ( qui a quelque chose à compresser )
puis je l'envoie par mail
le receveur dézippe l'archive
puis via une recherche de l'explorateur, cherche EMPTY.TXT et le supprime
et il obtient une arborescence vierge et fonctionnel


merci



Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message insérer/généré/créé un fichier EMPTY.TXT dans chaque dossier 
takius a écrit:
j'ai essayer de zipper celle ci pour l'envoyer par mail ( dans le but de transférer une arborescence de dossier partager à un autre users )
mais vu qu'il n'y a rien à copier le zip bug


Comment procèdes-tu exactement ?
Parce que j'ai fait quelques testes et je n'ai pas ce problème.



Sinon voici le code pour faire ce que tu veux :
Code:
@echo off

for /f "tokens=*" %%f in ('dir /s /b /a:d "%~dp0"') do (
  echo;%%f
  pushd "%%f"
  (
    echo;This file is to be deleted
  )> EMPTY.TXT
)

echo;&echo;End
pause>nul

Et voici le code pour supprimer les EMPTY.TXT
Code:
@echo off

for /f "tokens=*" %%f in ('dir /s /b /a:d "%~dp0"') do (
  echo;%%f
  pushd "%%f"
  del /q EMPTY.TXT >nul 2>&1
)

echo;&echo;End
pause>nul



Sinon on peut peut-être tenter une autre approche.
S'il s'agit juste d'envoyer une arborescence de dossiers/sous-dossiers, on peut simplement récupérer l'arborescence via un dir /b /s /a:d
Puis on met le tout dans un fichier Bat qui à son exécution recréera l'arborescence à l'identique dans le dossier où il se trouve.

Donc ce qui donne en Batch :
Code:
::################ ~~~ INIT ~~~ ################::
  @echo off
  Setlocal EnableDelayedExpansion
  set Folder=%~dp0
  set nb=0
  set i=0
  set percent=0
  call :getUnixTime startTime
::############## ~~~ End: INIT ~~~ #############::



::################ ~~~ MAIN ~~~ ################::
  echo;Please Wait..
  call :getRandomNameFolder 10 constructorBatchName
  echo;@echo off> "%constructorBatchName%"
  for /f "tokens=*" %%i in ('PowerShell -NoProfile -ExecutionPolicy Bypass -Command "(Get-ChildItem '%Folder%' -Recurse -Directory).Count"') do set nb=%%i
  for %%r in (%Folder%) do for /f "tokens=*" %%f in ('dir /s /b /a:d "%Folder%"') do (
    set cFolder=%%~f
    set cFolder=!cFolder:%%~dpr=!
    (
      echo;::===================================
      echo;set cf=!cFolder!
      echo;mkdir "%%cf%%"^&echo;Create Folder "%%cf%%"
    )>> "%constructorBatchName%"
    set /a i+=1
    set /a percent=100*!i!/!nb!
    cls
    echo;Percent: !percent!%%
    echo;Path: !cFolder!
  )
  (
    echo;::===================================
    echo;echo;
    echo;echo;End
    echo;pause^>nul
  )>> "%constructorBatchName%"
  timeout 1 >nul 2>&1
  cls
  echo;End
  call :getUnixTime endTime
  for /f "tokens=*" %%t in ('PowerShell -NoProfile -ExecutionPolicy Bypass -Command "%endTime:,=.%-%startTime:,=.%"') do set TotalTimeElapsed=%%t
  echo;File to Send: %constructorBatchName%
  echo;Time Elapsed: %TotalTimeElapsed% Seconds
  pause>nul
::############# ~~~ End: MAIN ~~~ ##############::



::############# ~~~ FUNCTION ~~~ ##############::
:getRandomString <Number> <Output>
  set alfanum=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
  set %~2=
  for /l %%b in (0, 1, %~1) do (
    set /a rnd_num=!random! * 62 / 32768 + 1
    for /F %%c in ('echo %%alfanum:~!rnd_num!^,1%%') do set %~2=!%~2!%%c
  )
Exit /b
:getRandomNameFolder <Number> <Output>
  set tmplen=%~1&set tmpoutput=%~2
  :getRandomNameFolderloop
  call :getRandomString %tmplen% %tmpoutput%
  if exist "Constructor.!%tmpoutput%!.bat" goto :getRandomNameFolderloop
  set %~2=Constructor.!%tmpoutput%!.bat
Exit /b
:getUnixTime <Output>
  for /f "tokens=*" %%t in ('PowerShell -NoProfile -ExecutionPolicy Bypass -Command "Get-Date -UFormat %%s"') do set %~1=%%t
Exit /b
::########### ~~~ End: FUNCTION ~~~ ###########::


Il suffit de placer ce fichier batch dans le dossier à partir duquel on veut "dupliquer" l'arborescence et on l'exécute.
Au final, ce batch créé dans le dossier où il se trouve après son exécution un fichier bat avec un nom du style : Constructor.BEyRXembO3p.bat
Il suffit ensuite d'envoyer ce fichier par mail et que le destinataire l'exécute pour recréer l'arborescence à l'identique.

Voici un exemple d'arborescence "dupliquer" générer par le batch :
Code:
@echo off
::===================================
set cf=mon dossier principal
mkdir "%cf%"&echo;Create Folder "%cf%"
::===================================
set cf=mon dossier principal\sous dossier 1
mkdir "%cf%"&echo;Create Folder "%cf%"
::===================================
set cf=mon dossier principal\sous dossier 2
mkdir "%cf%"&echo;Create Folder "%cf%"
::===================================
set cf=mon dossier principal\sous dossier 3
mkdir "%cf%"&echo;Create Folder "%cf%"
::===================================
set cf=mon dossier principal\sous dossier 1\sous dossier 1
mkdir "%cf%"&echo;Create Folder "%cf%"
::===================================
set cf=mon dossier principal\sous dossier 1\sous dossier 2
mkdir "%cf%"&echo;Create Folder "%cf%"
::===================================
set cf=mon dossier principal\sous dossier 1\sous dossier 3
mkdir "%cf%"&echo;Create Folder "%cf%"
::===================================
set cf=mon dossier principal\sous dossier 2\sous dossier 1
mkdir "%cf%"&echo;Create Folder "%cf%"
::===================================
set cf=mon dossier principal\sous dossier 2\sous dossier 2
mkdir "%cf%"&echo;Create Folder "%cf%"
::===================================
set cf=mon dossier principal\sous dossier 2\sous dossier 3
mkdir "%cf%"&echo;Create Folder "%cf%"
::===================================
set cf=mon dossier principal\sous dossier 3\sous dossier 1
mkdir "%cf%"&echo;Create Folder "%cf%"
::===================================
set cf=mon dossier principal\sous dossier 3\sous dossier 2
mkdir "%cf%"&echo;Create Folder "%cf%"
::===================================
set cf=mon dossier principal\sous dossier 3\sous dossier 3
mkdir "%cf%"&echo;Create Folder "%cf%"
::===================================
echo;
echo;End
pause>nul





______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Répondre en citant
Message insérer/généré/créé un fichier EMPTY.TXT dans chaque dossier 
merci pour la réponse


au boulot, j’utilise ce qui est installé , soit WINZIP
j’arrive à Zip l’arborescence
mais si j’essaye d’ouvrir l’archive pour voir le contenu, j’ai un soucis à ce moment là précis


Pour le boulot ou même à l’extérieur,
Les serveur n’aime pas beaucoup les BATCH comme tu donne dans ton message ( car ils sont bloqué d’office )
Donc je n’avais même pas cherché de côtè là


Rien que le bout de code ( qui proviens de chez vous ), cela fait peur à beaucoup de gens ( je ne suis pas dans un service informatique donc tous ces fichiers sont « sensibles » pour beaucoup de gens )
Code:

@echo off
title Liste
dir /b /s /a:D > liste.txt
start notepad liste.txt
pause >nul
exit




Je viens de faire l’essai du premier code , cela ci à bien insérer des fichiers EMPTY.TXT
J’ai zipper et envoyer sur un autre PC
cela est bon, l'archive part
et je recupére bien mon arborescence vierge ( après effacement des différents EMPTY.TXT via l'explorateur )



Répondre en citant
Message insérer/généré/créé un fichier EMPTY.TXT dans chaque dossier 
takius a écrit:

au boulot, j’utilise ce qui est installé , soit WINZIP
j’arrive à Zip l’arborescence
mais si j’essaye d’ouvrir l’archive pour voir le contenu, j’ai un soucis à ce moment là précis


peut-être qu'il est paramétré pour ne pas extraire les dossiers vides, faut voir dans les options.



Message insérer/généré/créé un fichier EMPTY.TXT dans chaque dossier 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch