我有一个 bat 脚本,要求用户输入下一行
SET /P returnString=Enter string: %=%
现在,我希望在命令行上显示默认输入,例如:
Enter string: defaultstring
需要说明的是:如果没有输入,我不需要默认值,我希望默认值在命令行上可见并且可编辑,因此在上述情况下,可以将
defaultstring
替换为其他文本。使用批处理文件中的SET可以做到这一点吗?如果没有,我该怎么做?
最佳答案
这是一个批处理+ JScript混合脚本,使用默认值进行提示。
@if (@CodeSection == @Batch) @then
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: The first line in the script is...
:: in Batch, a valid IF command that does nothing.
:: in JScript, a conditional compilation IF statement that is false.
:: So the following section is omitted until the next "[at]end".
:: Note: the "[at]then" is required for Batch to prevent a syntax error.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Batch Section
@echo off
setlocal
set "Input="
set "Default=Hello World"
title MyUniqueTitle
CScript //E:JScript //Nologo "%~f0" "MyUniqueTitle" "%Default%"
set /p "Input=> Prompt: "
if defined Input set "Input=%Input:"=%"
echo(%Input%
endlocal
exit /b 0
:: End of Batch
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@end
////////////////////////////////////////////////////////////////////////////////
// JScript Section
try
{
var WshShell = WScript.CreateObject('WScript.Shell');
var Title = WScript.Arguments.Item(0);
var Message = WScript.Arguments.Item(1);
WshShell.AppActivate(Title);
WshShell.SendKeys(Message);
WScript.Quit(0);
}
catch(e)
{
WScript.Echo(e);
WScript.Quit(1);
}
WScript.Quit(2);
关于windows - 将可编辑文本与bat文件一起放在命令提示符中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22307919/