Lebih
Cara mengatur perintah output sebagai variabel dalam sebuah batch file
Adalah mungkin untuk mengatur sebuah pernyataan's output dari sebuah batch file untuk sebuah variabel, misalnya:
findstr testing > %VARIABLE%
echo %VARIABLE%
201
9
Saya selalu menggunakan USEBACKQ sehingga jika anda memiliki tali untuk menyisipkan atau nama file yang panjang, anda dapat menggunakan tanda kutip ganda tanpa mengacaukan perintah.
Sekarang jika anda output akan berisi beberapa baris, anda dapat melakukan ini
Saya menemukan thread ini pada yang ada Interweb hal. Bermuara ke:
Anda juga dapat mengarahkan output dari perintah ke file sementara, dan kemudian menempatkan isi dari file sementara ke variabel, likesuchashereby:
Kredit untuk benang pada Tom's perangkat Keras.
dalam satu baris:
perintah output yang akan ditetapkan dalam %g kemudian di VAR.
Informasi lebih lanjut: https://ss64.com/nt/for_cmd.html
Untuk membaca file...
Untuk Menulis file
catatan; memiliki ruang sebelum <> karakter menyebabkan ruang akan ditambahkan pada akhir dari variabel, juga
Untuk menambahkan ke file,seperti program logger, Pertama buatlah file dengan satu tombol enter di dalamnya disebut e.txt
Jawaban-jawaban mereka semua begitu dekat dengan jawaban yang saya butuhkan. Ini merupakan upaya untuk memperluas pada mereka.
Dalam sebuah Batch file
Jika anda're berjalan dari dalam
.bat
file dan anda ingin garis tunggal yang memungkinkan anda untuk mengekspor rumit perintah sepertijq -r ".Kredensial.AccessKeyId" c:\temp\mfa-getCreds.json
untuk sebuah variabel bernamaAWS_ACCESS_KEY
maka anda inginkan ini:Pada Baris Perintah
Jika anda'kembali di
C:\
prompt anda ingin garis tunggal yang memungkinkan anda untuk menjalankan rumit perintah sepertijq -r ".Kredensial.AccessKeyId" c:\temp\mfa-getCreds.json
untuk sebuah variabel bernamaAWS_ACCESS_KEY
maka anda inginkan ini:Penjelasan
Satu-satunya perbedaan antara kedua jawaban di atas adalah bahwa pada baris perintah, anda menggunakan satu % pada variabel anda. Dalam sebuah batch file, anda harus dua kali lipat pada persentase tanda-tanda (%%).
Sejak perintah termasuk titik dua, tanda kutip, dan tanda kurung, anda perlu menyertakan
USEBACKQ
line dalam pilihan sehingga anda dapat menggunakan backquotes untuk menentukan perintah yang akan dijalankan dan kemudian semua jenis karakter lucu di dalamnya.Jika anda don't ingin output ke file temp dan kemudian membaca ke dalam suatu variabel, kode ini menyimpan hasil perintah langsung ke dalam sebuah variabel:
Jika anda ingin menyertakan pencarian string dalam tanda kutip ganda:
Jika anda ingin menyimpan kode ini di file batch, tambahkan ekstra % simbol:
Contoh yang berguna untuk menghitung jumlah file dalam direktori & toko dalam sebuah variabel: (menggambarkan perpipaan)
Perhatikan penggunaan tanda kutip tunggal bukan tanda kutip ganda " atau kuburan aksen ` dalam perintah kurung. Ini adalah pembersih alternatif untuk
delims
,token
atauusebackq
diuntuk
loop.Diuji pada Win 10 CMD.
Saya telah diuji seperti ini dan itu bekerja:
Oleh pipa perintah ke dalam sebuah variabel, prompt akan memasukkan hasil dari perintah "
Cmd
" ke dalam variabel "Var
".Update:
Itu doesn't bekerja, saya buruk, script yang saya lakukan adalah ini:
Itu benar-benar menunjukkan let's mengatakan "
test.txt
", tapi itu sebenarnya menunjukkan hasil dari "dir /b *.txt
" perintah, bukanecho %var%
. Saya bingung, karena kedua output yang sama.Semoga bantuan ini