"Ich möchte den Anrufer der XX-Funktion kennen, also liste ihn auf." Als mir gesagt wurde, ich solle zählen
Da es dort war, schien es schwierig zu sein, 150 Mal mit der IDE zu suchen, also schaffte ich es mit einer Batch-Datei. Fragen Sie nicht, warum es nicht Bash ist oder warum Sie das tun müssen.
grepCallHierarchy.bat
@echo off
setlocal enabledelayedexpansion
set i=0
for /f %%a in (targetList.txt) do (
set /a i+=1
echo !i! %%a
call set Arr[!i!]=%%a
)
pause
for /r %%a in (*.java) do (
for /f "tokens=1,2,3 delims= " %%b in (%%a) do (
for /l %%j in (1,1,%i%) do (
if !Arr[%%j]!==%%c (
echo %%a %%b %%c %%d
)
)
)
)
targetList.txt
NantokaComponent
KantokaComponent
Ausgabe
C:\path\to\file1.java private NantokaComponent nantokaComponent;
C:\path\to\file2.java private KantokaComponent kantokaComponent;
Es wurde eine Praxis von verschiedenen für Sätze.
for /r %%a in (*.java) do
for /f "tokens=1,2,3 delims= " %%b in (%%a) do
for /l %%j in (1,1,148) do
call set Arr[!i!]=%%a
Wie ich zum ersten Mal erfahren habe, haben Batch-Dateien kein Array.
Es scheint, dass sie nur die Variable Arr [1]
Arr [2]
erstellen ....
setlocal enabledelayedexpansion
Wenn Sie ein Array mit Indizes schleifen möchten, scheint es immer "Arr [1]" (Anfangswert) zu sein, es sei denn, Sie führen eine verzögerte Auswertung durch. Es ist schwierig. ..
Es scheint, dass der Teil, den Sie spät bewerten möchten, von einem Überraschungszeichen wie "Arr [! I!]" Statt "Arr [% i%]" umgeben ist. Ich war überrascht.
war Spaß. (Kleines Gefühl) Während ich es machte, dachte ich, dass es auch PowerShell gibt. Nächstes Mal möchte ich mit PowerShell spielen.
Recommended Posts