Batasi panjang batch input pengguna

0

Saya memerlukan perintah asli atau utilitas pihak ke-3 yang sederhana dan ringan yang dapat saya gunakan untuk mengatur variabel lingkungan dalam file batch, tetapi batasi hingga sejumlah karakter tertentu.

Sebagai contoh:

Masukkan pesan di sini (maks. 28 karakter):

Maka tentu saja pengguna hanya bisa memasukkan 28 karakter.

Ada ide?

Terima kasih!

N. Johnson
sumber
Ini hanyalah salah satu dari mereka yang menyimpan momen-momen sederhana. Substring saja variabel setelah pengguna memasukkan input mereka untuk memotongnya. set input=%input:~0,28%
Squashman
Sayangnya, ini lebih membantu pengguna untuk mempertahankannya. Pada dasarnya, saya menggunakannya untuk menandai gambar dan perlu membatasi jumlah karakter sehingga mereka tidak memasukkan sesuatu yang akan lari gambar :)
N. Johnson
Jadi lakukan seperti yang dikatakan Squashman dan dalam file batch Anda set input=%input:~0,28% untuk menguraikannya dan hanya menyimpan 28 karakter pertama dari nama file seperti itu. Baca lebih lanjut di sini: dostips.com/DtTipsStringManipulation.php
Pimp Juice IT

Jawaban:

1

Setelah mencari-cari, xcopy tampaknya menjadi pilihan paling solid.

set "key="
for /f "delims=" %%A in ('xcopy /w "%comspec%" "%comspec%" 2^>nul') do if not defined key set "key=%%A"
set "key=!key:~-1!"

mengambil kunci, dengan mana Anda dapat membangun input.

if "!input:~-%length%!" == "!input!"

memungkinkan untuk memeriksa panjang (dalam kasus Anda 28).


Anda juga bisa input.bat naskah yang saya tulis. Dengan menggunakan makro, Anda dapat mengambil output skrip. Pertama, Anda mendeklarasikan makro:

set input=^
for %%. in (1 2) do if %%.==2 (^
    for /F "delims=" %%I in ('input.bat !args!') do ^
        set "result=%%I"^
) else set args=

maka Anda menggunakannya seperti ini:

setlocal EnableDelayedExpansion
%input% "prompt=Password: " "length=28"

Anda kemudian dapat menggunakan result variabel untuk mendapatkan input Anda.

PENTING

Untuk mendefinisikan ekspansi makro yang tertunda perlu dilakukan CACAT . Namun saat menggunakannya, ekspansi yang tertunda harus dilakukan DIAKTIFKAN .


Sumber daya

input xcopy - DosTips.com

makro batch - DosTips.com

Grub4K
sumber