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

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
    )
)

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.