Pàgina d'inici » Posts tagged 'BAT'

Tag Archives: BAT

MS-DOS: Obtenir path del script batch i altres trucs interessants.

USA Flag German Flag Spain Flag
http://www.microsoft.com - cmd.exe
Microsoft CMD

Obtenir path del Batch i trucs semblants

Al treballar amb scripts – Batch de vegades cal accedir a informació contextual del entorn.

Les següents opcions permeten obtenir informació del entorn d’execució del script:

Instrucció Exemple
%cd% ~"current directory"
Carpeta actual de treball (variable)No te perquè ser la carpeta on esta ubicat el script

c:\temp>c:\temp\exemple.bat
cd= c:\temp
dp= c:\temp\exemple.bat
%~dp0

Carpeta del script (fixed)

Veure a dalt
%0

Nom del script

c:\temp\exemple.bat

0=c:\temp\exemple.bat

%cd:~0,3%

Unitat on esta ubicat

c:\

 Mòdul per passar a majúscules (UpperCase)

Publicat per la increïble pàgina dostips.com

:toUpper str -- converts lowercase character to uppercase
:: -- str [in,out] - valref of string variable to be converted
:$created 20060101 :$changed 20080219 :$categories StringManipulation
:$source http://www.dostips.com
if not defined %~1 EXIT /b
for %%a in ("a=A" "b=B" "c=C" "d=D" "e=E" "f=F" "g=G" "h=H" "i=I"
"j=J" "k=K" "l=L" "m=M" "n=N" "o=O" "p=P" "q=Q" "r=R"
"s=S" "t=T" "u=U" "v=V" "w=W" "x=X" "y=Y" "z=Z" "ä=Ä"
"ö=Ö" "ü=Ü") do (
call set %~1=%%%~1:%%~a%%
)
EXIT /b
 Verificar si un directori esta buit
for /F %%i in ('dir /b /a "%v_origen02%\*"') DO (SET v_ACTIV=Y)
 I ara que tinc les variables… com puc treure les cometes!!???

Amb la substitució de caràcters 🙂

SET v_check_file=%v_check_file:"=%


set v_check_file="C:\Temp\test origen"
set v_files="fitxer A COPIAR.txt"
set v_check_file=%v_check_file%\%v_files%
echo %v_check_file%
SET v_check_file=%v_check_file:"=%
echo %v_check_file%

Enllaços relacionats:

BAT: Executar un programa en USB evitant el Firewall

USA Flag German Flag Spain Flag
http://www.microsoft.com - cmd.exe
Microsoft CMD

He escrit diferents post respecte l’ús de scripting amb MS-DOS perquè m’han ajudat a resoldre diferents situacions; una de elles es l’execució d’un programa quan el Firewall te una regla que impedeix l’execució de programes des de USB. Es el que anomeno el CALLER.bat

A més de pasada miraré com guardar la ubicació base per a tornar desprès de l’execució.

Veiem l’script:

set v_unit=O:
set v_caller_path=O:\_Path\Script_Exemple
set v_caller_bat=_Exemple.bat
REM
REM
set v_sourcedir=%cd%        <- Aquesta es la instrucció clau per a torna al origen.
ECHO %0 --- BEGIN
echo v_sourcedir:%v_sourcedir%
%v_unit%
cd %v_caller_path%
@call %v_caller_path%\%v_caller_bat%  <- Instrucció clau per a executar el que volem.
move /y *.txt "%v_sourcedir%\"     <- Exemple per a moure tots els fitxers a la ubicació origen
echo %0 --- END
pause
%d bloggers like this: