Récupérer chemin dans fichier texte et utiliser le dernier nom de dossier
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je suis en train de développer un petit programme pour sauvegarder des données sur un NAS, j'ai donc un programme qui me permet d'inscrire les chemins à sauvegarder dans un fichier texte.
L'étape suivante consiste à utiliser une commande (ROBOCOPY) et à la répéter avec tout les chemin qu'il y a dans le fichier.
EXEMPLE :
Je veux sauvegarder "D:\Data", je veux que ROBOCOPY me copie les fichier du dossier "D:\Data" en me créant un dossier nommé "Data" sur le NAS.
J'ai donc un code batch qui lit toutes les lignes :
Et un code qui me permet de récupérer le dernier contenu d'un chemin :
J'essaie de cumuler les 2 afin d'indiquer à ROBOCOPY quel est le chemin à copier et stocker les fichier dans un dossier de même nom que le dernier dossier du chemin.
Merci pour toute aide :)
Je suis en train de développer un petit programme pour sauvegarder des données sur un NAS, j'ai donc un programme qui me permet d'inscrire les chemins à sauvegarder dans un fichier texte.
L'étape suivante consiste à utiliser une commande (ROBOCOPY) et à la répéter avec tout les chemin qu'il y a dans le fichier.
EXEMPLE :
Je veux sauvegarder "D:\Data", je veux que ROBOCOPY me copie les fichier du dossier "D:\Data" en me créant un dossier nommé "Data" sur le NAS.
J'ai donc un code batch qui lit toutes les lignes :
for /f "tokens=*" %%a in (path.csv) do (
echo line=%%a
)
Et un code qui me permet de récupérer le dernier contenu d'un chemin :
set CHEMIN=C:\Users\XXXXX\Desktop
for /f "delims=\ tokens=*" %%i in ('echo %CHEMIN%') do echo %%~ni
pause
J'essaie de cumuler les 2 afin d'indiquer à ROBOCOPY quel est le chemin à copier et stocker les fichier dans un dossier de même nom que le dernier dossier du chemin.
Merci pour toute aide :)
Configuration: Windows / Firefox 72.0
A voir également:
- Récupérer chemin dans fichier texte et utiliser le dernier nom de dossier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Dossier appdata - Guide
- Comment réduire la taille d'un fichier - Guide
7 réponses
Voilà ce que ça donnerait à peu près :
Il manque la création du dossier, pour cela il faudrait savoir sur quelle lettre tu as monté ton lecteur réseau.
@echo off
Setlocal EnableExtensions DisableDelayedExpansion
chcp 65001 >nul
for /f "delims=" %%a in (path.csv) do (
for /f "delims=" %%i in ("%%~a") do (
robocopy "%%~a" "\\adressedunas\partage\%%~ni"
)
)
pause
Il manque la création du dossier, pour cela il faudrait savoir sur quelle lettre tu as monté ton lecteur réseau.
Bonjour,
Quand je lis ton projet 2 détails me chiffonnent :
- quel est le système d'exploitation du NAS ?
- ton script est lancé depuis quelle machine ?
Quand je lis ton projet 2 détails me chiffonnent :
- quel est le système d'exploitation du NAS ?
- ton script est lancé depuis quelle machine ?
Bonjour,
J'ai un NAS Synology, donc il s'agit d'un diskstation.
Tandis qu'au script, il s'agit d'un script qui va être exécuté avec les tâches planifiées de Windows, le logiciel me permet juste de définir quels dossier sauvegarder, c'est pour ceci que je m’intéresse maintenant au script.
J'ai un NAS Synology, donc il s'agit d'un diskstation.
Tandis qu'au script, il s'agit d'un script qui va être exécuté avec les tâches planifiées de Windows, le logiciel me permet juste de définir quels dossier sauvegarder, c'est pour ceci que je m’intéresse maintenant au script.
Je ne pense pas que Diskstation soit capable de comprendre des commandes MS-DOS.
En plus le script va être exécuté depuis une machine distante, ce qui n'est pas possible sauf utilisation d'un outil tiers tel que PsExec (de la suite PsTools).
En plus le script va être exécuté depuis une machine distante, ce qui n'est pas possible sauf utilisation d'un outil tiers tel que PsExec (de la suite PsTools).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le script serais exécuter sur un ordinateur Windows, j'ai déjà le script qui copie à l'identique un dossier spécifique sur le NAS, ça fonctionne très bien.
Le problème ici c'est que je souhaiterais faire exactement la même chose mais avec des chemins de dossier qui sont inscrit dans un fichier texte, donc il s'agit seulement de code batch pour Windows
Le problème ici c'est que je souhaiterais faire exactement la même chose mais avec des chemins de dossier qui sont inscrit dans un fichier texte, donc il s'agit seulement de code batch pour Windows
Merci beaucoup, ça fonctionne niquel.
Juste petite question, comment faire pour que le script copie aussi les dossiers commençant par un "." ? J'ai essayer de copier un dossier caché (par exemple .nomdossier) trouvable dans mon dossier utilisateur.
Je met le code si ça peut en aider plus d'un :
Juste petite question, comment faire pour que le script copie aussi les dossiers commençant par un "." ? J'ai essayer de copier un dossier caché (par exemple .nomdossier) trouvable dans mon dossier utilisateur.
Je met le code si ça peut en aider plus d'un :
@echo off
Setlocal EnableExtensions DisableDelayedExpansion
chcp 65001 >nul
::Variables
for /f "tokens=1-3 delims=:" %%a in ("%time%") do set jour_backup=%%ah%%b
set backup_path=\\adressedunas\Backups
set cmd_backup=robocopy /Z /MIR /UNILOG+:"%backup_path%\LOGS_Robocopy\LOGS_%DATE:/=-%_%jour_backup%.txt" /NP /TEE
::Copie
for /f "delims=" %%a in (path.csv) do (
for /f "delims=" %%i in ("%%~a") do (
::Chemins à copier Source -> Dossier de destination
%cmd_backup% "%%~a" "%backup_path%\%%~ni"
)
)
::Jouer un son
powershell -c (New-Object Media.SoundPlayer "C:\Windows\Media\tada.wav").PlaySync();