The first two version are CLI only, non interactive
The next two version use dialog, so you get to review your settings with a nice GUI

#win10 basic example cli
#win10 full example cli
The next two version use dialog, so you get to review your settings with a nice GUI

#win10 basic example cli
Code:
VMID= NAME= MAC=DE:AD:BE:EF:42:70 DISK=64 RAM=6/25% CORE=90% OS=win10 ISO=win10u,virtcd FIRMWARE= MACHINE=q35 AGENT= STORAGE= BRIDGE= FIREWALL= CACHE=writeback VGA= AUDIO= BOOT= START= ; if qm create "${VMID:=$(pvesh get /cluster/nextid)}" --name "${NAME:-${OS:-win10}-$VMID}" --machine "$(if [ "${MACHINE:-q35}" = 440 ]; then printf pc; else printf q35; fi)" --ostype "${OS:-win10}" --cpu host --cores "$(awk -v r="${CORE:-90%}" -v h="$(nproc)" 'BEGIN{n=split(r,a,"/");for(i=1;i<=n;i++){if(a[i]~/%$/){sub(/%$/,"",a[i]);p=a[i]+0}else if(a[i]!="")m=a[i]+0}v=p?int(h*p/100):0;c=(v>m?v:m);if(c<1)c=1;if(c>h)c=h;print c}')" --memory "$(awk -v r="${RAM:-6}" 'BEGIN{n=split(r,a,"/");for(i=1;i<=n;i++){if(a[i]~/%$/){sub(/%$/,"",a[i]);p=a[i]+0}else if(a[i]!="")m=(a[i]+0)*1024}}/^MemTotal:/{v=int($2*p/102400);print (v>m?v:m);exit}' /proc/meminfo)" --virtio0 "${STORAGE:=$(pvesm status --content images --enabled 1 | awk 'NR>1&&$3=="active"{print $1;exit}')}:${DISK:-64},cache=${CACHE:-writeback},discard=on,iothread=1" $(IDE=2; if [[ ",${ISO:-}," == *,win10u,* ]]; then printf '%s\n' "--ide$IDE" 'local:iso/Win10_22H2_EnglishInternational_x64.unattended.latest.iso,media=cdrom'; IDE=$((IDE+1)); fi; if [[ ",${ISO:-}," == *,win10,* ]]; then printf '%s\n' "--ide$IDE" 'local:iso/Win10_22H2_EnglishInternational_x64.unattended.latest.iso,media=cdrom'; IDE=$((IDE+1)); fi; if [[ ",${ISO:-}," == *,win10e,* ]]; then printf '%s\n' "--ide$IDE" 'local:iso/Win10_22H2_English_x64.iso,media=cdrom'; IDE=$((IDE+1)); fi; if [[ ",${ISO:-}," == *,virtcd,* ]]; then printf '%s\n' "--ide$IDE" 'local:iso/virtio-win-latest.iso,media=cdrom'; IDE=$((IDE+1)); fi) --net0 "virtio=$MAC,bridge=${BRIDGE:-vmbr0},firewall=$(if [ "${FIREWALL:-no}" = yes ]; then printf 1; else printf 0; fi)" --boot "order=${BOOT:-virtio0;ide2}" $(if [ "${AUDIO:-yes}" = yes ]; then printf '%s\n' --audio0 device=ich9-intel-hda,driver=none; fi) $(if [ "${AUDIO:-yes}" = spice ]; then printf '%s\n' --audio0 device=ich9-intel-hda,driver=spice; fi) $(if [ "${AGENT:-yes}" = yes ]; then printf '%s\n' --agent enabled=1,fstrim_cloned_disks=1; fi) $(if [ "${VGA:-std}" = spice ]; then printf '%s\n' --vga qxl; else printf '%s\n' --vga "${VGA:-std}"; fi) $(if [ "${FIRMWARE:-efi}" = efi ]; then printf '%s\n' --bios ovmf --efidisk0 "$STORAGE:4,efitype=4m,pre-enrolled-keys=1"; fi) $(if [ "${FIRMWARE:-efi}" = bios ]; then printf '%s\n' --bios seabios; fi); then if [ "${START:-yes}" = yes ]; then if qm start "$VMID"; then echo "SUCCESS: VM $VMID named ${NAME:-${OS:-win10}-$VMID} was created on $STORAGE and started successfully"; else RC=$?; echo "WARNING: VM $VMID named ${NAME:-${OS:-win10}-$VMID} was created on $STORAGE but failed to start with exit code $RC" >&2; false; fi; else echo "SUCCESS: VM $VMID named ${NAME:-${OS:-win10}-$VMID} was created successfully on $STORAGE and left stopped"; fi; else RC=$?; echo "ERROR: VM $VMID was not created; qm create exited with code $RC" >&2; false; fi
#win10 full example cli
Code:
VMID="$(pvesh get /cluster/nextid)"; NAME="win10-$VMID" MAC=DE:AD:BE:EF:42:70 DISK=64 RAM=6/25% CORE=90% OS=win10 ISO=win10u,virtcd FIRMWARE=efi MACHINE=q35 AGENT=yes STORAGE="$(pvesm status --content images --enabled 1 | awk 'NR>1&&$3=="active"{print $1;exit}')" BRIDGE=vmbr0 FIREWALL=no CACHE=writeback VGA=std AUDIO=yes BOOT='virtio0;ide2' START=yes; if qm create "${VMID:=$(pvesh get /cluster/nextid)}" --name "${NAME:-${OS:-win10}-$VMID}" --machine "$(if [ "${MACHINE:-q35}" = 440 ]; then printf pc; else printf q35; fi)" --ostype "${OS:-win10}" --cpu host --cores "$(awk -v r="${CORE:-90%}" -v h="$(nproc)" 'BEGIN{n=split(r,a,"/");for(i=1;i<=n;i++){if(a[i]~/%$/){sub(/%$/,"",a[i]);p=a[i]+0}else if(a[i]!="")m=a[i]+0}v=p?int(h*p/100):0;c=(v>m?v:m);if(c<1)c=1;if(c>h)c=h;print c}')" --memory "$(awk -v r="${RAM:-6}" 'BEGIN{n=split(r,a,"/");for(i=1;i<=n;i++){if(a[i]~/%$/){sub(/%$/,"",a[i]);p=a[i]+0}else if(a[i]!="")m=(a[i]+0)*1024}}/^MemTotal:/{v=int($2*p/102400);print (v>m?v:m);exit}' /proc/meminfo)" --virtio0 "${STORAGE:=$(pvesm status --content images --enabled 1 | awk 'NR>1&&$3=="active"{print $1;exit}')}:${DISK:-64},cache=${CACHE:-writeback},discard=on,iothread=1" $(IDE=2; if [[ ",${ISO:-}," == *,win10u,* ]]; then printf '%s\n' "--ide$IDE" 'local:iso/Win10_22H2_EnglishInternational_x64.unattended.latest.iso,media=cdrom'; IDE=$((IDE+1)); fi; if [[ ",${ISO:-}," == *,win10,* ]]; then printf '%s\n' "--ide$IDE" 'local:iso/Win10_22H2_EnglishInternational_x64.unattended.latest.iso,media=cdrom'; IDE=$((IDE+1)); fi; if [[ ",${ISO:-}," == *,win10e,* ]]; then printf '%s\n' "--ide$IDE" 'local:iso/Win10_22H2_English_x64.iso,media=cdrom'; IDE=$((IDE+1)); fi; if [[ ",${ISO:-}," == *,virtcd,* ]]; then printf '%s\n' "--ide$IDE" 'local:iso/virtio-win-latest.iso,media=cdrom'; IDE=$((IDE+1)); fi) --net0 "virtio=$MAC,bridge=${BRIDGE:-vmbr0},firewall=$(if [ "${FIREWALL:-no}" = yes ]; then printf 1; else printf 0; fi)" --boot "order=${BOOT:-virtio0;ide2}" $(if [ "${AUDIO:-yes}" = yes ]; then printf '%s\n' --audio0 device=ich9-intel-hda,driver=none; fi) $(if [ "${AUDIO:-yes}" = spice ]; then printf '%s\n' --audio0 device=ich9-intel-hda,driver=spice; fi) $(if [ "${AGENT:-yes}" = yes ]; then printf '%s\n' --agent enabled=1,fstrim_cloned_disks=1; fi) $(if [ "${VGA:-std}" = spice ]; then printf '%s\n' --vga qxl; else printf '%s\n' --vga "${VGA:-std}"; fi) $(if [ "${FIRMWARE:-efi}" = efi ]; then printf '%s\n' --bios ovmf --efidisk0 "$STORAGE:4,efitype=4m,pre-enrolled-keys=1"; fi) $(if [ "${FIRMWARE:-efi}" = bios ]; then printf '%s\n' --bios seabios; fi); then if [ "${START:-yes}" = yes ]; then if qm start "$VMID"; then echo "SUCCESS: VM $VMID named ${NAME:-${OS:-win10}-$VMID} was created on $STORAGE and started successfully"; else RC=$?; echo "WARNING: VM $VMID named ${NAME:-${OS:-win10}-$VMID} was created on $STORAGE but failed to start with exit code $RC" >&2; false; fi; else echo "SUCCESS: VM $VMID named ${NAME:-${OS:-win10}-$VMID} was created successfully on $STORAGE and left stopped"; fi; else RC=$?; echo "ERROR: VM $VMID was not created; qm create exited with code $RC" >&2; false; fi