576 liens privés
"C:\Program Files (x86)\Java\jre1.8.0_241\bin\java.exe" -jar "C:\exe\plantuml\plantuml.jar" -gui -charset UTF-8
Pour avoir tous les fichiers (et dossiers) en parcourant le répertoire courant et ceux de niveau inférieur, et pour en afficher l'adresse au format long, taper dir /s /b > liste.doc
.
Pourquoi .doc
? Cela permet de choisir « le codage MS-DOS à la première ouverture du fichier liste .doc » (source) et que le texte soit correctement formaté.
Hop, je continue dans ma série « je veux me constituer une galerie KISS avec commentaire ». J'ai clairement jeté mon dévolu sur sfpg que je kiffe grave. Bon, j'ai parfois un problème de chargement des images mais rien de rebutant. Le seul petit soucis c'est que même si l'interface permet d'éditer des commentaires, c'est un poil contraignant : cliquer sur Admin
pour se mettre en mode d'administration, cliquer sur sa photo puis Description
et là on a une fenêtre d'édition du commentaire et enfin cliquer sur Save
et on recommence.
Je me suis dit qu'à la manière de l'éditeur de commentaire de Tommy pour MinigalNano, je pouvais simplement ouvrir un visionneur d'image d'un côté de l'écran (Win
+←
évidemment) et mon éditeur de texte favori de l'autre côté. Cela me permet de voir l'image en même temps que j'écris le commentaire et pour passer un suivant un petit Ctrl
+S
puis Ctrl
+W
dans une fenêtre et un →
dans l'autre fenêtre. Easy.
Oui mais… il me faut créer ce fichiers *.txt
. Bon, un petit batch ?
Oui mais… je suis une bite en batch.
Oui mais… « internet est mon ami » !
Allez, voici mon batch (oui rien de très glorieux mais bon, quand on rame un jour, on aime bien retrouver sa bouée de secours le lendemain…) :
CLS
@echo off
setlocal EnableDelayedExpansion
set zeFileType=jpg
set zeExtension=.txt
echo --- Ce script prend tous les fichier de type %zeFileType% ---
echo --- et il y ajoute une extension %zeExtension% ---
echo --- ([Ctrl]+[C] pour annuler) ---
pause
for %%x in (*.%zeFileType%) do (
echo Traitement de %%x
echo>%%x.txt
)
pause
DEL /Q/S .
(désolé, des fois je suis fatigué ; et puis ça faisait longtemps que je ne m'en étais pas servi)
CLS
@echo off
setlocal EnableDelayedExpansion
set zeFileType=xls
set zeSuffixe=_blabla
echo --- Ce script prend tous les fichier de type %zeFileType% ---
echo --- et il y ajoute le suffixe %zeSuffixe% ---
echo --- ([Ctrl]+[C] pour annuler) ---
pause
for %%x in (*.%zeFileType%) do (
echo Traitement de %%x
set zeNewName=%%~nx%zeSuffixe%
rename .\%%~nx.%zeFileType% !zeNewName!.%zeFileType%
)
pause
Et oui, le fameux problème de "L'expansion retardée de variables d'environnement"
Au lieu de ça :
dir /B /S %RepToRead% > %FileName%
for /f "tokens=*" %%a in ('type %FileName%') do (
set c=%%a
echo %c%
echo %%a
)
On doit plutôt mettre ça :
@echo off
setlocal enableDelayedExpansion
dir /B /S %RepToRead% > %FileName%
for /f "tokens=*" %%a in ('type %FileName%') do (
set c=%%a
echo !c!
echo %%a
)
Et ça marche très bien.
Edit 2015-05-05 : Oui, bien appliquer cela à la lettre (surtout le coup des %a% --> !a! sur les variables initialisées dans la boucle). Je viens à nouveau de perdre de nombreuses minutes pour cette astuce.
cf également https://stackoverflow.com/questions/12518242/batch-script-for-loop-wont-set-variable
Ensemble des variables d'environnement accessible en batch :
ALLUSERSPROFILE
APPDATA
CLASSPATH
CommonProgramFiles
COMPUTERNAME=
ComSpec
DEVMGR_SHOW_DETAILS
FP_NO_HOST_CHECK
HOMEDRIVE
HOMEPATH
LOGONSERVER
NUMBER_OF_PROCESSORS
OS
Path
PATHEXT
PROCESSOR_ARCHITECTURE
PROCESSOR_IDENTIFIER
PROCESSOR_LEVEL
PROCESSOR_REVISION
ProgramFiles
PROMPT
QTJAVA
SESSIONNAME
SystemDrive
SystemRoot
TEMP
TMP
USERDOMAIN
USERNAME
USERPROFILE
windir
DATE
TIME
CD
RANDOM
ERRORLEVEL
CMDEXTVERSION
CMDCMDLINE
Ce site est une vraie mine d'or claire et concise !
Edit 20150505 : Je cite : «
Effectuer une substitution de variable
Il est possible de changer les variables de sortie. Par exemple, si nous saisissons cette commande :
for /r %a in (*.txt) do @echo %~na
Seuls les fichiers .txt seront affichés.
La liste ci-dessous récapitule les variables de substitution ainsi que les combinaisons permises. Rappelons que la variable %a peut être remplacée par n'importe quelle autre lettre de l'alphabet ou chiffre.
%~a : développe %a en supprimant les guillemets.
%~fa : développe %a en un nom de chemin complet.
%~da : développe %a en une lettre de lecteur seulement.
%~pa : développe %a en un chemin seulement.
%~na : développe %a en un nom de fichier seulement.
%~xa : développe %a en une extension de fichier seulement.
%~sa : développe le chemin afin qu'il ne contienne que des noms courts.
%~aa : développe %a jusqu'aux attributs du fichier.
%~ta : développe %a jusqu'à la date et l'heure du fichier.
%~za : développe %a jusqu'à la taille du fichier.
%~$PATH:a : recherche les répertoires énumérés dans la variable d'environnement et développe %a jusqu'au nom complet du premier répertoire trouvé.
%~dpa : développe %a en une lettre de lecteur et un chemin seulement.
%~nxa : développe %a en nom de fichier et une extension seulement.
%~fsa : développe %a en un nom de chemin complet avec des noms courts seulement.
%~dp$PATH:a : recherche les répertoires énumérés dans la variable d'environnement pour %a et développe jusqu'à la lettre du lecteur et au chemin du premier répertoire trouvé.
%~ftzaa : développe %a en une ligne de sortie semblable à celle affichée par la commande "Dir". »
Je veux déplacer tous les fichiers epub d'un ensemble de dossier dans un seul dossier. En d'autres mots, je veux regrouper l'ensemble des fichiers d'un certain type contenus dans un dossier dans un autre répertoire.
Voici ma petite commande
@echo off
for /r "D:\Repertoire\Initial" %%x in (*.epub) do (
echo moving "%%x"
move "%%x" "D:\Repertoire\Destination"
)
pause
Dans la même veine que http://orangina-rouge.org/shaarli/?YACP1Q et http://sebsauvage.net/links/?0DwJxQ .
[A défaut de prendre le temps d'écrire sur mon blog, j'écris mon retour ici]
J'ai récemment dû dépanner un ami pour qui la carte µ-SD de 64Go dans son téléphone ne "répondait" plus. Impossible de la lire sous Windows XP, Linux Mint, son GS4, mon Cink Peax. Rien ne la reconnaissait. Il y avait bien un périphérique mais impossible de lire et toujours une proposition de le formater. Bah non : y'avait toutes ses photos persos, des films, des documents, ...
Je me suis donc souvenu de TestDisk : http://sebsauvage.net/links/?BzxyBg
J'ai tenté dans tous les sens de reconstruire la table de répartition, de changer la taille des blocs, etc. Bref, j'ai tourné le problème dans tous les sens mais je n'ai jamais réussi à ce que sa carte SD soit fonctionnelle comme avant.
En dernier recours, j'ai utilisé PhotoRec. Celui-ci a récupéré tous les fichiers de la SD. Tous sans exception (même les fichiers NSFW :-P ).
Ouf ! Ses fichiers étaient sauvés.
Malheureusement, tout est groupé dans des sous-dossiers <recup_dir.1>
, <recup_dir.2>
, ... Bref, y'en avait 44. Et tout possède des noms tels que f84553728.txt
, f84600576.mp4
. Pas très pratique...
Avec UltraSearch*
et une regex**
, j'ai pu récupérer ses photos en speed avant Noël.
Ensuite avec WinDirStat***
, on a fait du ménage pour effacer ses *.mp4
, *.avi
de séries/films de vacances. (Je rappelle que tout est fonctionnel, juste le nom et l'emplacement du fichier qui sont inexploitables). On est arrivé à une taille raisonnable, genre 9Go de tout ce qui n'était ni des photos, ni des MP3, ni des "films de vacances".
Mais ayant utilisé UltraSearch, il me fallait nettoyer tous les sous-dossiers pour retirer les *.jpg
déjà récupérés et les *.mp3
dont la récupération et le renommage ( avec MusicBrainz : http://orangina-rouge.org/shaarli/?QXJaYQ bien évidemment ) ont été jugés inutiles.
Hop, une tite ligne de batch :
for /l %%t in (1, 1, 44) do del /s/q .\recup_dir.%%t*.jpg
et tout était nettoyé.
Bref.
J'en profite pour remercier tout le monde qui a permis cela. Internet c'est génial et j'ai là senti l'application concrète des multiples échanges que nous permettent ce réseau. J'ai vraiment sorti quelqu'un de la merde, ça m'a pris du temps mais sans ça j'aurais connu quelqu'un qui aurait fait un "Formater...>Tout" en pleurant sur toutes ses photos depuis 5 ans...
Maintenant, allez-vous faire plaisir par ici pour agrémenter votre journée : http://orangina-rouge.org/shaarli/?searchtags=citation
*
: UltraSearch : http://alternativeto.net/software/ultrasearch/
**
: quelques idées de regex : http://orangina-rouge.org/shaarli/?searchterm=regex
***
: WinDirStat : http://alternativeto.net/software/windirstat/
Edit : NB : mis à part UltraSearch qui aurait pu être remplaçable, et Windows+Batch, tout cela n'a été fait qu'avec des Logiciels Libre ! ! ! :-D
Tout est dans le titre.
J'adore batch (quand j'ai pas le choix)
« Instruction echo
Cette instruction sert à deux choses, à afficher du texte à l'écran et à demander d'afficher ou non la suite des instructions à exécuter.
Le signe arrobas (@) permet de ne pas afficher l'instruction en cours d'exécution. Exemple : l'instruction "@copy toto titi" copie le fichier toto dans un fichier titi mais sans afficher l'instruction " copy toto titi ".
Pour éviter d'avoir à mettre l'arrobas à toutes les instructions, on peut mettre l'instruction @echo off. Cela demande aux batch de ne pas afficher les instructions qui suivent mais tout en les exécutant. L'instruction "@echo on" rétabli l'affichage.
L'instruction "@echo." affiche une ligne vide.
L'instruction "@echo toto" affiche le texte toto. »