Lolos “=” (tanda sama) di untuk / f

4

Saya mencoba menjalankan perintah berikut dalam "FOR / F" di shell Windows ...

wmic process where ParentProcessId=%%PID%% get ProcessId

The =antara ParentProcessId dan% PID% terus gettings mengganti dengan spasi.

Hasilnya adalah:

for /F "usebackq" %b in (wmic process where ParentProcessId %PID% get ProcessId) do (.

Bagaimana saya bisa lolos dari tanda karakter = ini?

pengguna545778
sumber
Bagaimana maksud Anda itu 'diganti'? Anda mengetiknya, dan tanda yang sama secara ajaib berubah menjadi spasi? Apakah Anda menggunakan ini dalam file batch?
Ƭᴇcʜιᴇ007
Letakkan 'sekelilingnya untuk / F "usebackq"% b di (' proses wmic di mana ParentProcessId =% PID% dapatkan ProcessId ') ... Contoh: IN (' WMIC Path Win32_DiskPartition Di mana "BootPartition = true Dan PrimaryPartition = true" Dapatkan DeviceID / Format: daftar ') DO
Setekh
@ Selekh Itu salah. usebackqmembutuhkan backquotes `bukan kutipan tunggal'
DavidPostill
Tidaaaak bukan userbackq ... ('WMIC ...')
paham

Jawaban:

2

Mencoba:

for /F "usebackq" %b in (`wmic process where ParentProcessId^=0 get ProcessId`) do echo %b

Tanda "=" diloloskan dengan tanda "^". Juga catat bahwa wmicperintah itu sendiri dilampirkan dalam "tanda kutip kembali" sebagaimana dipanggil oleh penggunaan usebackqparameter.

BillP3rd
sumber
2

Bagaimana saya bisa lolos dari tanda karakter = ini?

for /F "usebackq" %%b in (wmic process where ParentProcessId=%PID% get ProcessId) do (

Ada dua masalah dengan hal di atas:

  1. Saat menggunakan "usebackq"Anda harus meletakkan backquotes di sekitar perintah yang akan diproses for.

  2. Perlu ada kutipan di "sekitar whereklausa wmic.

Gunakan file batch berikut:

@echo off
setlocal 
set PID=1188
for /F "usebackq" %%b in (`wmic process where "ParentProcessId=%PID%" get ProcessId`) do (
  echo %%b
  )
endlocal

Contoh output:

F:\test>test
ProcessId
2508
10100
ECHO is off.

catatan:

  • The ECHO is off.line output karena wmicoutput baris kosong akhir.

Bacaan lebih lanjut

DavidPostill
sumber
Itulah yang saya coba jelaskan, tetapi menulisnya jadi kacau jadi saya kira itu tidak bisa dimengerti: D
Setekh
Mengutip tidak bekerja untuk saya, tetapi menghindari tanda sama dengan jawaban BillP3rd.
Burkart