OVH Cloud OVH Cloud

(HS) Dos

17 réponses
Avatar
Jacky
Bonsoir à tous

Quelqu'un saurait-il comment nommer (pas renommer) un fichier 'xxxxx.yyy' en
fichier 'xxxxx000.yyy' sans l'effacer et sans l'ouvrir et le tout dans un
fichier .bat sous DOS.
Je sais que ce n'est pas ici qu'il faudrait poser cette question, mais si
l'un d'entre vous connaissait la réponse, cela me dépannerait, ou me faire
savoir sur quel forum je pourrais trouver la solution.

Ne pas me bannir SVP
Merci

7 réponses

1 2
Avatar
JièL Goubert
Salut Paul

ben si en plus y nous embrouille en ne prennant pas les bons mots,
comment comprendre ;-)))

C'est un peu comme si on parlais d'eau à JPS par exemple ;-)

--
JièL / Jean-Louis GOUBERT
Co-auteur de "Internet + de 1 000 trucs de pros" chez Micro Application
http://faq.outlook.free.fr/livreMA/internet_plus_de_1000_trucs_de_pros.htm
Avatar
Jacky
Bonsoir Denis et à tous ceux qui participent constructivement à ce fil.

CD
Copy /Y %1 %2 ????

%1 et %2 représente 2 variables.????

Je ne sais pas attribuer une variable à un nom de fichier sous dos, j'ai 48
fichiers à nommer (yyyyy.xxx vers yyyyy000.xxx) puis détruire les fichiers
yyyyy.xxx.
Je ne sais pas non plus faire une condition du genre:
If date du jour =>milieu du nom du fichier then
del ou copy ou déplace
endif
Selon les conditions de date ils doivent être détruits ou copiés ou
déplacés.

Bonne soirée
JJ


"michdenis" a écrit dans le message news:
#DPhM#
Bonsoir Jacky,


Le contenu de ton batch file pourrait être 2 Lignes de commande
Le paramètre /y à la commande Copy permet d'écraser sans avertissement si
un fichier du même nom existe déjà dans le

répertoire retenu comme destination.


CD
Copy /Y %1 %2


%1 et %2 représente 2 variables.

Dans une fenêtre Dos lorsque tu appelles ton BatchFile, tu dois renseigner
ces 2 variables.


Exemple : Ton Fichier BatchFile se trouve à la racine C: et s'appelle
"Renommer.bat"


La Commande Saisie directement dans la fenêtre

C:Renommer.bat C:ExcelClass.xls c:AilleursClass25.xls


Si tu veux un BatchFile sans variables : "Coder en Dur"

CD
Copy /Y C:ExcelClass.xls c:AilleursClass25.xls



Pour Exécuter ce BatchFile dans une procédure VBA , voici comment faire :
Il manque à la procédure suivante une gestion d'erreur, quant à
l'existence des fichiers et la validité de leur chemin.


'------------------------------------
Sub ExecutionBatchFile()

Dim A As String, B As String
Dim C As String, D As String
Dim E As Double

'Chemin et nom du fichier actuel
A = "C:ExcelClass1.xls"

'Chemin et nom de ton futur fichier
'Le Chemin et le dossier de destination doit exister
'Si un fichier existe déjà sous ce nom, il sera écrasé.
B = "C:AilleursClass25.xls"

'Chemin et nom de ton BatchFile
C = "C:ExcelRenommer.bat"

'Le "/c" Permet de fermer automatiquement la fenêtre Dos à la fin
D = Environ("comspec") & " /c " & C & " " & A & " " & B & ""
E = Shell(D, 1)

End Sub
'------------------------------------


Salutations!





"Jacky" a écrit dans le message de
news:

Bonsoir à tous

Quelqu'un saurait-il comment nommer (pas renommer) un fichier 'xxxxx.yyy'
en

fichier 'xxxxx000.yyy' sans l'effacer et sans l'ouvrir et le tout dans un
fichier .bat sous DOS.
Je sais que ce n'est pas ici qu'il faudrait poser cette question, mais si
l'un d'entre vous connaissait la réponse, cela me dépannerait, ou me faire
savoir sur quel forum je pourrais trouver la solution.

Ne pas me bannir SVP
Merci






Avatar
michdenis
Bonjour Jacky,

Je ne sais pourquoi tu tiens vraiment à faire ce travail en DOS. Je suis actuellement sous Windows Xp, et c'est très
loin d'une version de Dos 6.22 . De plus, il y a de forte chance que les commandes d'un bon vieux "Dos" ne soient pas
tous présentes ... sous les différentes versions de Windows. La souplesse de dos est quand même assez limité lorsqu'il
s'agit de programmation !!!

Je t'offre une procédure équivalente en VBA qui devrait faire ce que tu veux ....si j'ai compris ...

Cette petite procédure fait une boucle sur tous les fichiers d'un répertoire, et si la date de la dernière modification
est plus ancienne d'une date que tu fixeras, il renomme le fichier ou le détruit.

Tu peux utiliser la propriété "DateCreated" ou "DateLastAccessed" si tu préfères...

'----------------------------------------
Sub CopierOuDetruire()

Dim Fs As Object, F As Object
Dim Repertoire As String, Fichiers As Object
Dim LaDate As Date

'******Variable a`définir ***********

LaDate = DateSerial(2003, 9, 8)
Repertoire = "c:Excel"

'*************************************


If Repertoire = "" Then Exit Sub

Set Fs = CreateObject("Scripting.FileSystemObject")
Set Rep = Fs.GetFolder(Repertoire)
If Rep.Files.Count > 0 Then
For Each F In Rep.Files
If F.DateLastModified < LaDate Then
'Dédouble le fichier vers le répertoire
'et nom du fichier choisi
F.Copy "C:ExcelNouveau.xls"
Else
F.Delete
'Ou cette ligne de code
'attention, pas de récupération possible dans la poubelle.
'Kill Repertoire & F.Name
End If
Next
End If
Set Fs = Nothing: Set F = Nothing
End Sub
'----------------------------------------


Salutations!




"Jacky" a écrit dans le message de news:
Bonsoir Denis et à tous ceux qui participent constructivement à ce fil.

CD
Copy /Y %1 %2 ????

%1 et %2 représente 2 variables.????

Je ne sais pas attribuer une variable à un nom de fichier sous dos, j'ai 48
fichiers à nommer (yyyyy.xxx vers yyyyy000.xxx) puis détruire les fichiers
yyyyy.xxx.
Je ne sais pas non plus faire une condition du genre:
If date du jour =>milieu du nom du fichier then
del ou copy ou déplace
endif
Selon les conditions de date ils doivent être détruits ou copiés ou
déplacés.

Bonne soirée
JJ


"michdenis" a écrit dans le message news:
#DPhM#
Bonsoir Jacky,


Le contenu de ton batch file pourrait être 2 Lignes de commande
Le paramètre /y à la commande Copy permet d'écraser sans avertissement si
un fichier du même nom existe déjà dans le

répertoire retenu comme destination.


CD
Copy /Y %1 %2


%1 et %2 représente 2 variables.

Dans une fenêtre Dos lorsque tu appelles ton BatchFile, tu dois renseigner
ces 2 variables.


Exemple : Ton Fichier BatchFile se trouve à la racine C: et s'appelle
"Renommer.bat"


La Commande Saisie directement dans la fenêtre

C:Renommer.bat C:ExcelClass.xls c:AilleursClass25.xls


Si tu veux un BatchFile sans variables : "Coder en Dur"

CD
Copy /Y C:ExcelClass.xls c:AilleursClass25.xls



Pour Exécuter ce BatchFile dans une procédure VBA , voici comment faire :
Il manque à la procédure suivante une gestion d'erreur, quant à
l'existence des fichiers et la validité de leur chemin.


'------------------------------------
Sub ExecutionBatchFile()

Dim A As String, B As String
Dim C As String, D As String
Dim E As Double

'Chemin et nom du fichier actuel
A = "C:ExcelClass1.xls"

'Chemin et nom de ton futur fichier
'Le Chemin et le dossier de destination doit exister
'Si un fichier existe déjà sous ce nom, il sera écrasé.
B = "C:AilleursClass25.xls"

'Chemin et nom de ton BatchFile
C = "C:ExcelRenommer.bat"

'Le "/c" Permet de fermer automatiquement la fenêtre Dos à la fin
D = Environ("comspec") & " /c " & C & " " & A & " " & B & ""
E = Shell(D, 1)

End Sub
'------------------------------------


Salutations!





"Jacky" a écrit dans le message de
news:

Bonsoir à tous

Quelqu'un saurait-il comment nommer (pas renommer) un fichier 'xxxxx.yyy'
en

fichier 'xxxxx000.yyy' sans l'effacer et sans l'ouvrir et le tout dans un
fichier .bat sous DOS.
Je sais que ce n'est pas ici qu'il faudrait poser cette question, mais si
l'un d'entre vous connaissait la réponse, cela me dépannerait, ou me faire
savoir sur quel forum je pourrais trouver la solution.

Ne pas me bannir SVP
Merci






Avatar
Jacky
Merci Isabelle
Je me suis mal expliqué, le nom du fichier n'est pas connu, il faut passer
par une variable, des explications à ma demande sont données plus loin dans
ce fil.
Je crois que je vais passer par une commande VB compilé en exécutable, si
j'arrive à la construire...
JJ

"isabelle" a écrit dans le message news:

salut Jacky,

je dirais que "sans l'effacer" c'est une copie d'un fichier vers un
autre emplacement (ou le même) et sous un autre nom
copy c:xxxxx.yyy c:xxxxx000.yyy /a

si c'est possible qu'il y est des fichiers de valeur nulle il faut
remplacer la commande par xcopy

le commutateur /a ajoute un caractère de fin de fichier à la fin
et /b n'ajoue pas de caractère de fin

isabelle


Bonsoir à tous

Quelqu'un saurait-il comment nommer (pas renommer) un fichier
'xxxxx.yyy' en


fichier 'xxxxx000.yyy' sans l'effacer et sans l'ouvrir et le tout dans
un


fichier .bat sous DOS.
Je sais que ce n'est pas ici qu'il faudrait poser cette question, mais
si


l'un d'entre vous connaissait la réponse, cela me dépannerait, ou me
faire


savoir sur quel forum je pourrais trouver la solution.

Ne pas me bannir SVP
Merci




Avatar
Jacky
Salut Jièl

ceci dit, je ne comprend vraiment plus le but


En effet, je (le monsieur) me suis très mal exprimé, des explications à ma
demande sont données plus loin dans
ce fil.
Je crois que je vais passer par une commande VB compilé en exécutable, si
j'arrive à la construire...

Merci d'avoir essayé
JJ

"JièL Goubert" a écrit dans le message news:

Salut FxM

FxM a écrit:
Jièl, tu triches !


voui, on me le dit souvent ;-))) (private joke)

Le monsieur a dit nommer pas renommer.
REN c'est RENAME donc renommer ...


Oups, j'ma gourré
ceci dit, je comprend pas bien quand même... comment "nommer" un fichier
xxxx.yyy en xxxx000.yyy ? c'est pas renommer ça ?
A moins que le monsieur veuille faire de l'incrémentation de nom de
fichier, mais comment faire sur des fichiers qui n'existe pas ???
ben la, bien du courage avec le dos...

ceci dit, je ne comprend vraiment plus le but ;-)

--
JièL / Jean-Louis GOUBERT
Co-auteur de "Internet + de 1 000 trucs de pros" chez Micro Application
http://faq.outlook.free.fr/livreMA/internet_plus_de_1000_trucs_de_pros.htm




Avatar
Jacky
Bonjour Fab
Tes souvenirs, sont bons.
Mais comme le nom du fichier est variable.....
Des explications complémentaires sont données plus loin dans ce fil.
Je te remercie d'avoir répondu.
A+
JJ

"Fab" a écrit dans le message news:
3f5f24cc$0$20630$
Bonjour à tous,
Si mes souvenirs sont bons:
copy xxxx.yyy xxxx000.yyy
A+
Un nouveau venu sur le MPFE.

"Paul V." a écrit dans le message de
news:3f5f0a29$0$9542$


JièL Goubert wrote:
Salut FxM

FxM a écrit:
Jièl, tu triches !


voui, on me le dit souvent ;-))) (private joke)

Le monsieur a dit nommer pas renommer.
REN c'est RENAME donc renommer ...


Oups, j'ma gourré
ceci dit, je comprend pas bien quand même... comment "nommer" un
fichier xxxx.yyy en xxxx000.yyy ? c'est pas renommer ça ?


J'ai déjà posé la question ;-)

.................

Paul V











Avatar
Jacky
Bonsoir Denis

Je tiens ici à te dire un GRAND MERCI pour ta procedure que je suis en train
d'adapter et qui commence déjà à bien fonctionner.
Encore Merci
Bonne nuit
JJ

"michdenis" a écrit dans le message news:

Bonjour Jacky,


L'essentiel de la procédure est là. Que ce soit en "Dos" ou avec
"FileSystemObject" .


Évidemment, il reste à fignoler la procédure selon les exigences de ton
projet. Et ça, je ne saurais faire !



Salutations!


P.S. si tu as des questions précises, chemin faisant, tu peux toujours les
soumettre au groupe de discussion.






"Jacky" a écrit dans le message de
news:ua3nNE%

Bonsoir Denis

Je ne sais pourquoi tu tiens vraiment à faire ce travail en DOS


Je crois que je vais aller dans ce sens.
Je donne plus d'explications :

J'ai 109 dossiers de nom différent contenant chacun un dossier nommé
'DATA'

plus un dossier nommé 'DATA_2' .Le dossier nommé 'DATA' contient 48
fichiers ou plus 'fichier.Wav' sous cette forme :

Xxxxx_030830_2330_32.wav
Xxxxx_030830_2335_32.wav
Xxxxx_030830_2340_32.wav
etc. etc , donc 48 fichiers ou plus d'enregistrements automatiques de 5mn
en

5mn

Xxxxx = un nom (variable)
030830 = une date (variable)
2330 = l'heure( enregistrement de 5mn en 5mn) incrémenté automatiquement
(Variable)


Ce que je voudrais faire :

1-Si le dossier Data contient des fichiers plus anciens que la date du
jour

moins 10 jours ayant une extension .Wav, les déplacer vers le dossier
nommé

'data_2' . Le reste de ces fichiers .Wav seront automatiquement concaténés
en un seul fichier par un programme déjà en place.
Le résultat de cette concaténation donne un fichier qui a pour nom :
Xxxxx_030830_2330_32_full.wav


2-Renommé 'Xxxxx_030830_2330_32_full.wav' en
'Xxxxx_030830_233000_32_full.wav' automatiquement

Ton code n'intéresse et va, je crois, tout à fait dans le sens de ce que
je

veux obtenir. Mais est-il adaptable à ma description ci-dessus.
Comment faire pour le compiler en exécutable. L'objectif serait de le
placer

dans un fichier. bat déjà en place.
Je possède Visual basic 3.0

Salutation
JJ



"Jacky" a écrit dans le message de
news:

Bonsoir Denis et à tous ceux qui participent constructivement à ce fil.

CD
Copy /Y %1 %2 ????

%1 et %2 représente 2 variables.????

Je ne sais pas attribuer une variable à un nom de fichier sous dos, j'ai
48

fichiers à nommer (yyyyy.xxx vers yyyyy000.xxx) puis détruire les
fichiers


yyyyy.xxx.
Je ne sais pas non plus faire une condition du genre:
If date du jour =>milieu du nom du fichier then
del ou copy ou déplace
endif
Selon les conditions de date ils doivent être détruits ou copiés ou
déplacés.

Bonne soirée
JJ


"michdenis" a écrit dans le message news:
#DPhM#
Bonsoir Jacky,


Le contenu de ton batch file pourrait être 2 Lignes de commande
Le paramètre /y à la commande Copy permet d'écraser sans avertissement
si


un fichier du même nom existe déjà dans le
répertoire retenu comme destination.


CD
Copy /Y %1 %2


%1 et %2 représente 2 variables.

Dans une fenêtre Dos lorsque tu appelles ton BatchFile, tu dois
renseigner


ces 2 variables.

Exemple : Ton Fichier BatchFile se trouve à la racine C: et
s'appelle



"Renommer.bat"

La Commande Saisie directement dans la fenêtre

C:Renommer.bat C:ExcelClass.xls c:AilleursClass25.xls


Si tu veux un BatchFile sans variables : "Coder en Dur"

CD
Copy /Y C:ExcelClass.xls c:AilleursClass25.xls



Pour Exécuter ce BatchFile dans une procédure VBA , voici comment
faire



:
Il manque à la procédure suivante une gestion d'erreur, quant à
l'existence des fichiers et la validité de leur chemin.


'------------------------------------
Sub ExecutionBatchFile()

Dim A As String, B As String
Dim C As String, D As String
Dim E As Double

'Chemin et nom du fichier actuel
A = "C:ExcelClass1.xls"

'Chemin et nom de ton futur fichier
'Le Chemin et le dossier de destination doit exister
'Si un fichier existe déjà sous ce nom, il sera écrasé.
B = "C:AilleursClass25.xls"

'Chemin et nom de ton BatchFile
C = "C:ExcelRenommer.bat"

'Le "/c" Permet de fermer automatiquement la fenêtre Dos à la fin
D = Environ("comspec") & " /c " & C & " " & A & " " & B & ""
E = Shell(D, 1)

End Sub
'------------------------------------


Salutations!





"Jacky" a écrit dans le message de
news:

Bonsoir à tous

Quelqu'un saurait-il comment nommer (pas renommer) un fichier
'xxxxx.yyy'


en
fichier 'xxxxx000.yyy' sans l'effacer et sans l'ouvrir et le tout dans
un


fichier .bat sous DOS.
Je sais que ce n'est pas ici qu'il faudrait poser cette question, mais
si


l'un d'entre vous connaissait la réponse, cela me dépannerait, ou me
faire


savoir sur quel forum je pourrais trouver la solution.

Ne pas me bannir SVP
Merci
















1 2