Précédent   Forum des professionnels en informatique > Systèmes > Windows > Vos contributions > FAQs Windows
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 04/02/2010, 18h27   #1
Rédacteur
 
Inscription : janvier 2003
Messages : 6 156
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 6 156
Points : 8 087
Points : 8 087
Par défaut [Batch] Fonction touch

Fonction touch, uniquement pour des fichiers existants:
Code :
1
2
3
4
dir test.txt
 copy /b test.txt +,,
dir test.txt
From Alex Pinsker
__________________
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - Ressources PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.

Dernière modification par Laurent Dardenne ; 05/02/2010 à 12h04.
Laurent Dardenne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2010, 21h49   #2
Membre Expert
 
Avatar de I'm_HERE
 
Homme Walid Toumi
Inscription : juillet 2008
Messages : 805
Détails du profil
Informations personnelles :
Nom : Homme Walid Toumi
Localisation : Tunisie

Informations forums :
Inscription : juillet 2008
Messages : 805
Points : 1 008
Points : 1 008
Salut Laurent Dardenne,

Bonne idée, c'est presque une "émulation" de la commande "touch",
mais malheureusement cette technique ne va pas créer un fichier vide si le fichier mis en paramètre n'est pas présent
donc pour etre plus precis c'est une emulation de :
car

va créer un fichier "f.txt" s'il n'existe pas


je crois aussi qu'on peux faire aussi ceci:

mais c'est à vérifier..

d'autre part, on peux aussi utiliser la commande externe NIRCMD pour changer les dates de: "création/modification/dernier acces" d'un fichier

la syntaxe:
Code :
1
2
nircmd setfiletime "fichier" "t.Modifié" "t.création" "t.accès"
quelques exemples:
Code :
1
2
3
4
5
nircmd setfiletime "d:\fichier.txt" "now" "now" "now" 
nircmd setfiletime "d:\fichier.txt" "now" "" "now" 
nircmd setfiletime "d:\fichier.txt" "now" "" "18-10-2000 12:25:23"
nircmd setfiletime "d:\fichier.txt" "" "16-07-2005 17:57:11" ""

** le format de date est "dd-mm-yyyy hh:nn:ss"
** on peux selectionner plusieurs fichiers avec le wildcard "*" :
Code :
 nircmd setfiletime "d:\fichier*.txt" "" "" ""

pour télécharger NIRCMD + une aide complète sur toutes ses fonctionnalités
__________________

Gawk
Sed
ActivePerl
python
CoreUtils for Windows


I'm_HERE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 10h12   #3
Rédacteur
 
Inscription : janvier 2003
Messages : 6 156
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 6 156
Points : 8 087
Points : 8 087
Citation:
Envoyé par I'm_HERE
Salut Laurent Dardenne,
Tu peux m'appeler Laurent.
Citation:
Envoyé par I'm_HERE
mais malheureusement cette technique ne va pas créer un fichier vide si le fichier mis en paramètre n'est pas présent
Oui c'est vrai. Je suis tombé sur cette astuce native et me suis dit que cela pouvait en intéresser d'autres.
Mon usage de touch se fait le plus souvent sur des fichiers existants.
Citation:
Envoyé par I'm_HERE
je crois aussi qu'on peux faire aussi ceci:
Cela ne fonctionne pas sous XP sp3, mais ceci :
Code :
1
2
 
copy nul test.txt /Y
Citation:
Envoyé par I'm_HERE
d'autre part, on peux aussi utiliser la commande externe NIRCMD
Quelque fois l'installation d'outil externe est problèmatique, mais de connaître les deux méthodes est appréciable .
__________________
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - Ressources PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
Laurent Dardenne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 11h21   #4
Membre Expert
 
Avatar de I'm_HERE
 
Homme Walid Toumi
Inscription : juillet 2008
Messages : 805
Détails du profil
Informations personnelles :
Nom : Homme Walid Toumi
Localisation : Tunisie

Informations forums :
Inscription : juillet 2008
Messages : 805
Points : 1 008
Points : 1 008
Citation:
Envoyé par Laurent Dardenne Voir le message
Tu peux m'appeler Laurent.
salut Laurent,

Citation:
Envoyé par Laurent Dardenne Voir le message
Cela ne fonctionne pas sous XP sp3,
hier j'ai tester avec un SP2, j'ai pas un SP3 pour tester donc...

Citation:
Envoyé par Laurent Dardenne Voir le message
mais ceci :
Code :
1
2
 
copy nul test.txt /Y
malheureusement, pour moi, copy nul test.txt /Y va rafraichir la date de modification et aussi va vider le fichier (tester sous SP2 aussi)
__________________

Gawk
Sed
ActivePerl
python
CoreUtils for Windows


I'm_HERE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 12h03   #5
Rédacteur
 
Inscription : janvier 2003
Messages : 6 156
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 6 156
Points : 8 087
Points : 8 087
Citation:
Envoyé par I'm_HERE
malheureusement, pour moi, copy nul test.txt /Y va rafraichir la date de modification et aussi va vider le fichier (tester sous SP2 aussi)
Oui, je n'ai pas pris le temps d'expliquer que si le fichier n'existe pas, on peut le créer ainsi. Ce qui fait que ce n'est plus une commande mais un script puisqu'il faudrait utiliser,avec un test if sur le fichier ciblé.
J'ai précisé dans le premier post : uniquement pour des fichiers existants.
__________________
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - Ressources PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
Laurent Dardenne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 13h40   #6
Membre Expert
 
Avatar de I'm_HERE
 
Homme Walid Toumi
Inscription : juillet 2008
Messages : 805
Détails du profil
Informations personnelles :
Nom : Homme Walid Toumi
Localisation : Tunisie

Informations forums :
Inscription : juillet 2008
Messages : 805
Points : 1 008
Points : 1 008
en autre manière "peu académique" consiste à faire ceci:

Code :
1
2
3
4

set file=fichier.txt
type %file% 2>nul >' & move ' %file%
__________________

Gawk
Sed
ActivePerl
python
CoreUtils for Windows


I'm_HERE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2010, 21h02   #7
Inactif
 
Avatar de Mac LAK
 
Inscription : octobre 2004
Messages : 3 899
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : octobre 2004
Messages : 3 899
Points : 4 524
Points : 4 524
Citation:
Envoyé par Laurent Dardenne Voir le message
Fonction touch, uniquement pour des fichiers existants:
Voilà le script permettant de gérer AUSSI les fichiers inexistants :
Code touch.bat :
1
2
3
4
5
6
7
8
9
10
11
@echo off
setlocal enableextensions
if @%1==@ goto :help
if not exist %1 (type NUL>%1) else (copy /b %1 +,, > NUL)
echo %1 touched.
goto :eof

:help
echo Usage: %~n0 ^<File^>
echo Will "touch" the specified file.
goto :eof
Plus qu'à sauver ça sous le nom "touch.bat", dans un chemin du PATH, et ça roule...
Mac LAK est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 04h42.


 
 
 
 
Partenaires

Hébergement Web