Batch file renaming -
i come little problem :'( : have many txt files , more , more day , need make back-up of them , encrypt them safety reasons made batch script :
@echo off  /r d:\txtwork %%g in (**.txt **.trt) ( certutil -f -encode "%%g" "%%g.bak" echo. >>d:\txtwork\logs\logbak1.txt %time:~0,-6% - made back-up of file - "%%g"  ) ok works want make batch decode them , change extension old 1 (from .txt.bak or .trt.bak .txt or .trt ) tried , made :
@echo off  /r d:\txtwork %%g in (**.bak) ( certutil -f decode "%%g" "%%g:~0,-4"  ) but didn t work tried
@echo off  /r d:\txtwork %%g in (**.bak) ( set var_1="%%g"  certutil -f decode "%var_1%" "%var_1:~0,-4%"  ) it didn't work either. ?
- "%%g:~0,-4"totally wrong;
- to retrieve value of var_1variable need enable delayed expansion , use!var_1!instead of%var_1%although doing bring problem:- certutil -f decode "!var_1!" "!var_1:~0,-4!"expand
- certutil -f decode ""something.txt.bak"" ""something.txt""(note doubled double quotes);
 
- use next setcommand syntax:set "var_1=%%g"(note first double quote position).
next code snippet should work:
@echo off  setlocal enableextensions disabledelayedexpansion /r d:\txtwork %%g in (**.bak) (     set "var_1=%%g"     setlocal enabledelayedexpansion     certutil -f decode "!var_1!" "!var_1:~0,-4!"      endlocal ) however, use parameter extensions follows:
@echo off  setlocal enableextensions /r d:\txtwork %%g in (**.bak) (     certutil -f decode "%%g" "%%~dpng"  ) 
Comments
Post a Comment