Memanggil alias dalam file batch

0

Saya memiliki kode berikut. Saya mencoba untuk mengubah server nama dan kemudian merujuk perintah nslookup untuk menggunakan server nama itu tetapi tidak berfungsi yaitu mengembalikan kesalahan yang nslooktidak ada.

@ECHO OFF
@DOSKEY NSLOOK=NSLOOKUP $* 1.2.3.4
FOR /F %%i in (servers.txt) do FOR /F "delims=: tokens=2" %%j in (
  'nslook %%i ^| find "Name:"'
) do @echo %%j >> dns.txt 2>> error.txt
Kacang Kacang Tanah
sumber

Jawaban:

1

Mengapa DosKey? ... dalam batch mereka memiliki sistem makro sendiri: SET VAR = dan% VAR%

set nslook=nslookup
for /F %%i in (servers.txt) do (
    for /F "tokens=2 delims=: " %%j in ('%nslook% %%i  2^>^>error.txt ^| find "Name:"') do (
        echo %%j >> dns.txt
    )
)
JasonXA
sumber
Terima kasih. Itu berfungsi tetapi tidak memberi tahu saya nama server yang mengalami kesalahan. Semua saya dapatkan di file kesalahanRequest to 1.2.3.4 timed-out
PeanutsMonkey
Hm ... jadi, bukankah itu seharusnya seperti itu? Ketika saya mengujinya, di servers.txt saya telah menempatkan 8.8.8.8 dan 8.8.4.4 ditambah beberapa tipuan, ini semua saya tahu dari atas kepala saya. Keduanya baik, mereka mendarat di dns.txt sebagai nama alamat diselesaikan, palsu mendarat di error.txt. Atau apakah Anda lebih suka kesalahan yang akan dicetak? Jika demikian, hapus 2 ^> ^> error.txt
JasonXA