批处理脚本:传递包含脱字符的参数密码

Batch Scripting: Pass argument password containing caret character

所以我有以下批处理脚本 (test.bat):

@echo off

set usernameArgument=%1
set passwordArgument=%2

echo Password Argument: %passwordArgument%

在 CMD 中,如果我使用具有脱字符“^”字符的密码参数调用它,脱字符将被删除:

C:\> test.bat UserName Pass^Word

输出:Password Argument: PassWord

有没有一种方法可以使用脱字符获取 passwordArgument 字段 (%2) 的值,

注意:我有一个限制,因为这是一个密码,我不想传递类似这样的 Pass^^^^Word 我想找到一个解决方案,让我只传递 Pass^ Word 作为参数。

^是cmd中的转义字符。如果你必须在密码中使用它,那么你必须使用它两次,即 ^^ 获得一个密码。

例如,如果您输入 pass^^word,那么您的密码将为 pass^word

替代方法是在密码周围使用 " 双引号。喜欢:"pass^Word"。这将解决您的问题。

希望对您有所帮助。