我的密码中包含function onObjectSelected(e) {
console.log(e.target.get('type'));
}
canvas.on('object:selected', onObjectSelected);
。无论我尝试过什么,它都会从!
下降。我的脚本正在使用!
,因此我不确定这是否是我遇到此问题的原因。这是我的代码:
ENABLEDELAYEDEXPANSION
当我运行脚本时,我得到set password=cccvvv!
echo %password%
。
我尝试过以下方法:
cccvvv
似乎没什么用。
如何让它继续保留变量中的set password=cccvvv!!
set password=cccvvv^^!
?
答案 0 :(得分:1)
测试
@echo off
setlocal enableextensions enabledelayedexpansion
rem Escaped exclamation
set "password=this is a test^!"
rem See the environment block
set password
rem Echo with normal expansion
echo %password%
rem Echo with delayed expansion
echo !password!
当延迟扩展处于活动状态时,您需要转义感叹号以将其存储在变量中,并且当延迟扩展处于活动状态时,解析器通常会在使用没有延迟扩展语法的变量时将其删除。
答案 1 :(得分:0)
我建议你用PowerShell包装这个解决方案;)
@echo off
Title Mask/hide password entry *****
Mode con cols=60 lines=5
:CheckPassword
cls & color 0B & echo.
set MyPassword=cccvvv!
set "psCommand=powershell -Command "$pword = read-host 'Enter your password ' -AsSecureString ; ^
$BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword); ^
[System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)""
for /f "usebackq delims=" %%p in (`%psCommand%`) do set password=%%p
if %MyPassword%==%password% (Goto:Good) else (Goto:Bad)
exit/b
::***********************************************************************************************
:Good
Cls & Color 0A
echo(
echo Good Password
TimeOut /T 1 /NoBreak>nul
Exit
::***********************************************************************************************
:Bad
Cls & Color 0C
echo(
echo Bad password
TimeOut /T 1 /NoBreak>nul
Goto:CheckPassword
::***********************************************************************************************
答案 2 :(得分:0)
如果在前面添加^符号!设置密码时标记。在写这个答案之前我会检查它。我还创建了一个test.bat文件来测试它 代码:
@echo off
set password=cccvvv!
echo %password%
pause
确切输出:
cccvvv!
Press any key to continue . . .