Windows批处理-请求使用默认值的用户输入
在windows批处理文件中,我想请求用户输入, 我想向用户显示一个默认值,即bat文件所在的文件夹。 因此,当运行批处理文件时,批处理将检查当前文件夹并将默认变量设置为该文件夹,然后用户可以通过单击enter或输入其他值来接受建议的值。 我尝试了这段代码,但它不起作用,UserInputPath没有设置Windows批处理-请求使用默认值的用户输入,windows,batch-file,command-prompt,Windows,Batch File,Command Prompt,在windows批处理文件中,我想请求用户输入, 我想向用户显示一个默认值,即bat文件所在的文件夹。 因此,当运行批处理文件时,批处理将检查当前文件夹并将默认变量设置为该文件夹,然后用户可以通过单击enter或输入其他值来接受建议的值。 我尝试了这段代码,但它不起作用,UserInputPath没有设置 set default=ABCD set /p UserInputPath=%default% echo %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
,则需要使用一些能够向该提示符发送击键的外部软件…根据问题的编辑,更新为始终包括批处理文件本身的路径作为默认值。更新为始终包括批处理文件本身的路径作为默认值,根据问题的编辑。