J'ai le chemin réseau suivant pour copier le fichier dans un dossier d'archive. Il copie File 1
de Folder
à Archive
mais je voudrais ajouter ces 2 ajustements qui ne fonctionneront pas.
File 1-1
en File 1 - date + time
Pour mon code, j'ai suivi cet exemple pour changer le nom en une date.
copy "F:\Folder\File 1.xlsx" "F:\Folder\Archive\File 1-1.xlsx"
/f "tokens=1-5 delim s=/ " %%d in ("%date%") do rename "F:\Folder example 2.xlsx" "F:\Folder\File example %%e-%%f-%%g.xlsx"
essaye ça:
ren "File 1-1" "File 1 - %date:/=-% %time::=-%"
Voyez si c'est ce que vous voulez faire:
@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a
set YYYY=%dt:~0,4%
set MM=%dt:~4,2%
set DD=%dt:~6,2%
set HH=%dt:~8,2%
set Min=%dt:~10,2%
set Sec=%dt:~12,2%
set stamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%
copy "F:\Folder\File 1.xlsx" "F:\Folder\Archive\File 1 - %stamp%.xlsx"
J'ai modifié la réponse de Foxidrive pour copier des dossiers entiers et tout leur contenu. ce script va créer un dossier et y sauvegarder le contenu d'un autre dossier, y compris tous les sous-dossiers situés en dessous.
Si vous mettez ceci dans une tâche planifiée toutes les heures, vous devez faire attention car vous pouvez remplir votre lecteur rapidement avec des copies de votre dossier d'origine. Avant bitbucket, etc., j’utilisais un script similaire pour enregistrer mon code hors ligne.
@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a
set YYYY=%dt:~0,4%
set MM=%dt:~4,2%
set DD=%dt:~6,2%
set HH=%dt:~8,2%
set Min=%dt:~10,2%
set Sec=%dt:~12,2%
set stamp=YourPrefixHere_%YYYY%%MM%%DD%@%HH%%Min%
rem you could for example want to create a folder in Gdrive and save backup there
cd C:\YourGoogleDriveFolder
mkdir %stamp%
cd %stamp%
xcopy C:\FolderWithDataToBackup\*.* /s
Renomme tous les fichiers .pdf
en fonction de la date système actuelle. Par exemple, un fichier nommé Gross Profit.pdf
est renommé en Gross Profit 2014-07-31.pdf
. Si vous l'exécutez demain, il le renommera en Gross Profit 2014-08-01.pdf
.
Vous pouvez remplacer le ?
par le nom du rapport Gross Profit
, mais il ne renommera que le rapport. Le ?
renomme tout le contenu du dossier Conduit
. La raison pour laquelle il y a tant de ?
, c'est que certains .pdf
s ont des noms longs. Si vous venez de mettre 12 ?
s, alors tout nom de plus de 12 caractères sera coupé au 13ème caractère. Essayez-le avec 1 ?
, puis essayez-le avec plusieurs ?
s. La longueur de ?
devrait être un peu plus longue ou aussi longue que le nom du rapport le plus long.
@ECHO OFF
SET NETWORKSOURCE=\\flcorpfile\shared\"SHORE Reports"\2014\Conduit
REN %NETWORKSOURCE%\*.pdf "????????????????????????????????????????????????? %date:~-4,4%-%date:~-10,2%-%date:~7,2%.pdf"
Oui, pour le faire fonctionner en arrière-plan, créez un raccourci vers le fichier de commandes et accédez aux propriétés. Je suis sur une machine ATM de Linux, mais je crois que l'option que vous voulez se trouve dans l'onglet Avancé.
Vous pouvez également exécuter votre script batch par le biais d'un script vbs, comme suit:
'HideBat.vbs
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True
Cela exécutera votre fichier de commandes sans fenêtre cmd affichée.