OVH Cloud OVH Cloud

les ! ne passent pas

1 réponse
Avatar
Francis MARTIN
Bonjour , j'essaye de faire un script en batch windows 2000.j'ai un blocage
:je veux lister les fichiers d'un volume et faire une action sur chacun
comme les copier sur un autre volume.mais les noms de fichier avec un !
posent problème ( dans le SET ^! devient ! et ! devient rien (!!!)).J'ai
approché la solution (si elle existe ) mais ...


le script qui copie bien le fichier avec des ! mais sous un nom sans les !
( copy d:\mirroir2\!!!toto.txt d:\tmp\toto.txt)

setlocal ENABLEDELAYEDEXPANSION
rem ______copie les fichiers d'u répertoire d:\mirroir2 dans d:\tmp si la
sous-arborescence existe déja

for /r d:\mirroir2 %%a in ( *.* ) do (
set a=%%a
set but=!a:mirroir2=tmp!
set source=!a:!=^!!
copy "!source!" "!but!"
)
____________________________________________________________________________
________________________
le script qui ne marche pas

setlocal ENABLEDELAYEDEXPANSION
rem ______copie les fichiers d'u répertoire d:\mirroir2 dans d:\tmp si la
sous-arborescence existe
for /r d:\mirroir2 %%a in ( *.* ) do (
set a=
set a=%%a

set source=!a:!=^!!
set c=
set but=!a:!=^^^!
set c=!but:mirroir2=tmp!
copy "!source!" "!c!"

)
merci pour un peu d'aide.

1 réponse

Avatar
Guy
pourkoi tu n'essai pas :

set source=d:mirroir2
set but=d:tmp

for /i /r %source% %%a in ( *.* ) do (
copy %source%%%a %but%
)

Amicalement
Guy


Bonjour , j'essaye de faire un script en batch windows 2000.j'ai un blocage
:je veux lister les fichiers d'un volume et faire une action sur chacun
comme les copier sur un autre volume.mais les noms de fichier avec un !
posent problème ( dans le SET ^! devient ! et ! devient rien (!!!)).J'ai
approché la solution (si elle existe ) mais ...


le script qui copie bien le fichier avec des ! mais sous un nom sans les !
( copy d:mirroir2!!!toto.txt d:tmptoto.txt)

setlocal ENABLEDELAYEDEXPANSION
rem ______copie les fichiers d'u répertoire d:mirroir2 dans d:tmp si la
sous-arborescence existe déja

for /r d:mirroir2 %%a in ( *.* ) do (
set a=%%a
set but=!a:mirroir2=tmp!
set source=!a:!=^!!
copy "!source!" "!but!"
)
____________________________________________________________________________
________________________
le script qui ne marche pas

setlocal ENABLEDELAYEDEXPANSION
rem ______copie les fichiers d'u répertoire d:mirroir2 dans d:tmp si la
sous-arborescence existe
for /r d:mirroir2 %%a in ( *.* ) do (
set a > set a=%%a

set source=!a:!=^!!
set c > set but=!a:!=^^^!
set c=!but:mirroir2=tmp!
copy "!source!" "!c!"

)
merci pour un peu d'aide.