samedi 19 juin 2010

Compter le nombre de caractères

VBS-LIKE

@echo off
call:LCount %*
echo %length%
goto:EOF
:LCount
echo/wsh.echo "set length="^&Len("%*")>..vbs
cscript/nologo ..vbs>..bat
for %%. in (call del) do %%. ..bat ..vbs
goto:EOF 


VBS-LIKE

@echo off
echo\Input=Inputbox("String:","Input")>..vbs
echo\wsh.echo "set length="^&Len(Input)>>..vbs
cscript/nologo ..vbs>..bat
for %%. in (call del) do %%. ..bat ..vbs
echo\%length%
pause 


VBS-LIKE

@echo off
set str=%*
echo>len.vbs c=len(wsh.arguments.item(0)):wsh.echo c
for /f  %%i in ('cscript/nologo len.vbs "%str%"') do set len=%%i
echo LENGTH=%len%
del len.vbs
goto:EOF 


NATIVE

Set Str=hello
for /f "tokens=1* delims=[]" %%a in ('
  "%comspec% /u /c echo:%Str%|more|find /n /v """
 ') do set /a "length=%%a-4"
goto:eof

Remplacement de chaine de caractères

voici quelques méthodes, parmis d'autres, pour remplacer une chaîne de caractères par une autre, avec un fichier batch

1-Utilisation de l'utilitaire Edlin
@echo off
REM batfile infile "search" "rep"
REM EXEMPLE: batfile test.txt a A
REM ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
set/p="1r%~2"-
copy /a -+nul>nul
set/p="%~3"--
copy /b -+-- --->nul
echo.>>---
echo>>--- w
echo>>--- 900a
echo>>--- e
type --- |>nul edlin /b %1
del - -- ---
goto:EOF



2- VBS-LIKE
@echo off
set file=a.txt
set oldstr=u
set newstr=#MAJ#

For %%A in (
  "do until Wsh.stdin.atendofstream    " 
  "  o="%oldstr%" :  n="%newstr%"      "
  "  ch=replace(wsh.stdin.readline,o,n)"
  "  Wsh.echo ch                       "
  "loop"
) do >>__.vbs echo\%%~A 
type %file% |>' cscript /nologo __.vbs && move ' %file%
del __.vbs
exit /b






mercredi 16 juin 2010

naviguer dans la base de registre

salut,

voici une astuce pour naviguer dans la base de registre assez facilement:
l'astuce consiste à copier la clef du registre dans la mémoire pour ensuite l'exploiter grâce à un utilitaire NIRCMD.EXE


raccourcis pour naviguer dans la base de registre from WALID on Vimeo.

dimanche 13 juin 2010

.Bat VS .Cmd


Les Fichiers de commandes MS-DOS connus sous le nom .BAT diffèrent des Scripts de commandes Windows NT connus sous le nom .CMD
Cette différence, n'est si grande, elle se situe fondamentalement sur la portabilité des .Bat au contraires des fichiers .CMD et l'intérprétation des erreurs retournées par quelques commandes internes à l'intérpréteur.
   
  @echo off 
  set test=CMD
  Call :sub 6
  set test=BAT
  If errorlevel 6 (echo BAT) else (echo CMD)
  goto:eof

  :sub
  exit /b %1
  goto :eof