Windows批处理-请求使用默认值的用户输入

Windows批处理-请求使用默认值的用户输入,windows,batch-file,command-prompt,Windows,Batch File,Command Prompt,在windows批处理文件中,我想请求用户输入, 我想向用户显示一个默认值,即bat文件所在的文件夹。 因此,当运行批处理文件时,批处理将检查当前文件夹并将默认变量设置为该文件夹,然后用户可以通过单击enter或输入其他值来接受建议的值。 我尝试了这段代码,但它不起作用,UserInputPath没有设置 set default=ABCD set /p UserInputPath=%default% echo %UserInputPath% 根据您对问题的编辑。您希望使

在windows批处理文件中,我想请求用户输入, 我想向用户显示一个默认值,即bat文件所在的文件夹。 因此,当运行批处理文件时,批处理将检查当前文件夹并将默认变量设置为该文件夹,然后用户可以通过单击enter或输入其他值来接受建议的值。 我尝试了这段代码,但它不起作用,UserInputPath没有设置

    set default=ABCD
    set /p UserInputPath=%default%
    echo %UserInputPath%

根据您对问题的编辑。您希望使用
%~dp0
检测批处理文件的驱动器和路径,然后将路径回显到提示符中并将其设置为默认路径,除非用户键入其他内容,否则它将始终使用批处理运行的默认路径。可以作为
脚本值
运行,也可以作为
脚本
运行,仅当提示用户:

@echo off
set "UserInputPath=%1"
set "default=%~dp0"
if "%UserInputPath%"=="" set /p "UserInputPath=Enter Path (Default "%default%"): " || set "UserInputPath=%default%"
echo "%UserInputPath%"
pause

根据您对问题的编辑。您希望使用
%~dp0
检测批处理文件的驱动器和路径,然后将路径回显到提示符中并将其设置为默认路径,除非用户键入其他内容,否则它将始终使用批处理运行的默认路径。可以作为
脚本值
运行,也可以作为
脚本
运行,仅当提示用户:

@echo off
set "UserInputPath=%1"
set "default=%~dp0"
if "%UserInputPath%"=="" set /p "UserInputPath=Enter Path (Default "%default%"): " || set "UserInputPath=%default%"
echo "%UserInputPath%"
pause

将第一行替换为
set UserInputPath=ABCD
,这样当用户用ENTER确认提示时,前一个变量值不会被覆盖,因此
ABCD
将被回显:

设置“UserInputPath=ABCD”
set/P UserInputPath=“提示文本:”
回显(%UserInputPath%)
如果您想知道用户是否键入了任何内容,请稍后查询该值:

如果ErrorLevel 1回显用户刚刚按下{Enter}。

注意:

如果您想在提示符前加上
ABCD
,则需要使用一些能够向该提示符发送击键的外部软件…

将第一行替换为
set UserInputPath=ABCD
,这样当用户刚刚用ENTER确认提示符时,前一个变量值不会被覆盖,因此
ABCD
将被回音:

设置“UserInputPath=ABCD”
set/P UserInputPath=“提示文本:”
回显(%UserInputPath%)
如果您想知道用户是否键入了任何内容,请稍后查询该值:

如果ErrorLevel 1回显用户刚刚按下{Enter}。

注意:

如果您想在提示符前加上
ABCD
,则需要使用一些能够向该提示符发送击键的外部软件。

您要求的
用户可以通过单击enter或输入其他值来接受建议的值

利用
set/p
的行为:如果输入为空(只需
ENTER
),变量保持不变。因此您可以简单地设置默认值:

set "UserInputPath=ABCD"
set /p "UserInputPath=Enter path or just ENTER for default [%UserInputPath%] : "
echo %UserInputPath%

您要求
用户可以通过单击enter或输入其他值来接受建议的值

利用
set/p
的行为:如果输入为空(只需
ENTER
),变量保持不变。因此您可以简单地设置默认值:

set "UserInputPath=ABCD"
set /p "UserInputPath=Enter path or just ENTER for default [%UserInputPath%] : "
echo %UserInputPath%

:-)如果未选择任何选项,请使用默认值。请参见下面的答案。将第一行替换为
set UserInputPath=ABCD
,这样当用户用{ENTER}确认提示时,将回显
ABCD
。如果您想在提示符前填充
ABCD
,则需要使用一些能够向此提示符发送击键的外部软件…:-)如果未选择,则使用默认值,请参见下面的答案。将第一行替换为
设置用户输入路径=ABCD
,因此,当用户用{ENTER}确认提示时,
ABCD
将被回响。如果您想在提示符前加上
ABCD
,则需要使用一些能够向该提示符发送击键的外部软件…根据问题的编辑,更新为始终包括批处理文件本身的路径作为默认值。更新为始终包括批处理文件本身的路径作为默认值,根据问题的编辑。