向脚本添加密码屏蔽

2024-01-01

为了练习,我正在编写一个程序来隐藏文件夹。程序本身运行良好,但我想用星号 (*) 屏蔽我的输入。我找到了将输入屏蔽为独立脚本的代码,但我无法找到将代码集成到我的代码中的方法。任何帮助将不胜感激。

程序代码

@echo off
color 5F
title Folder Locker by KBKOZLEV
:SETPASS
set "tipp="
set "password="
if exist "password.txt" (
    set /p password=<password.txt
    attrib +h +s "password.txt"
)
if exist "tipp.txt" (
    set /p tipp=<tipp.txt
    attrib +h +s "tipp.txt"
)
:START
if exist "Locked" goto OPEN
if exist "Unlocked" goto LOCK
if not exist "Unlocked" goto MDLOCKER
:LOCK
ren "Unlocked" "Locked"
attrib +h +s "Locked"
echo.
echo Folder locked.
CHOICE /C X /T 1 /D X > nul
exit
:MDLOCKER
md "Unlocked"
echo>password.txt 1234
echo>tipp.txt 1234
attrib +h +s "password.txt"
attrib +h +s "tipp.txt"
cls
echo.
echo Private folder created successfully.
CHOICE /C X /T 1 /D X > nul
goto END
:OPEN
color 2F
cls
echo.
echo Password tipp: %tipp%
echo.
echo Enter password to unlock folder or
echo enter "new" to set a new password.
echo.
set "pass="
set /p "pass=Password: "
if /i "%pass%"=="new" goto NEWPASS
if "%pass%"=="%password%" (
    attrib -h -s "Locked"
    ren "Locked" "Unlocked"
    echo.
    echo Folder unlocked successfully.
    goto END
)
goto FAIL
:FAIL
color 4F  
cls
echo.
echo Invalid password, please try again.
CHOICE /C X /T 1 /D X > nul
cls
goto OPEN
:NEWPASS
color 8F
cls
echo.
set "oldpass="
set /p "oldpass=Old password: "
if not "%oldpass%"=="%password%" goto FAIL
:ENTERNEW
color 8F
cls
echo.
set "newpass=""
set /p "newpass=New password: "
set newpass=%newpass:"=%
if "%newpass%"=="" (
    echo.
    echo Invalid new password, please enter new password again.
    CHOICE /C X /T 1 /D X > nul
    goto ENTERNEW
)
if exist "password.txt" attrib -h -s "password.txt"
echo>password.txt %newpass%
echo.
set "passtipp=""
set /p "passtipp=New tipp: "
set passtipp=%passtipp:"=% 
if exist "tipp.txt" attrib -h -s "tipp.txt"
if not "%passtipp%"=="" (
    echo>tipp.txt %passtipp%
) else (
    del "tipp.txt" 
)
goto SETPASS 
:END

掩码

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion

Set /P "=Enter a Password:" < Nul
Call :PasswordInput
Echo(Your input was:!Line!

Goto :Eof

:PasswordInput
::Author: Carlos Montiers Aguilera
::Last updated: 20150401. Created: 20150401. 
::Set in variable Line a input password
For /F skip^=1^ delims^=^ eol^= %%# in (
'"Echo(|Replace.exe "%~f0" . /U /W"') Do Set "CR=%%#"
For /F %%# In (
'"Prompt $H &For %%_ In (_) Do Rem"') Do Set "BS=%%#"
Set "Line="
:_PasswordInput_Kbd
Set "CHR=" & For /F skip^=1^ delims^=^ eol^= %%# in (
'Replace.exe "%~f0" . /U /W') Do Set "CHR=%%#"
If !CHR!==!CR! Echo(&Goto :Eof
    If !CHR!==!BS! (If Defined Line (Set /P "=!BS! !BS!" <Nul
        Set "Line=!Line:~0,-1!"
    )
) Else (Set /P "=*" <Nul
If !CHR!==! (Set "Line=!Line!^!"
    ) Else Set "Line=!Line!!CHR!"
)
Goto :_PasswordInput_Kbd

这里是merged脚本。注意原文的改动:PasswordInput过程(在你的原始代码中,所有cls取而代之rem cls仅用于调试目的):

@Echo Off
SetLocal EnableExtensions DisableDelayedExpansion

color 5F
title Folder Locker by KBKOZLEV
:SETPASS
set "tipp="
set "password="
if exist "password.txt" (
    set /p password=<password.txt
    attrib +h +s "password.txt"
)
if exist "tipp.txt" (
    set /p tipp=<tipp.txt
    attrib +h +s "tipp.txt"
)

:START
if exist "Locked" goto :OPEN
if exist "Unlocked" goto :LOCK
if not exist "Unlocked" goto :MDLOCKER

:LOCK
ren "Unlocked" "Locked"
attrib +h +s "Locked"
echo(
echo Folder locked.
CHOICE /C X /T 1 /D X > nul
goto :END
exit

:MDLOCKER
md "Unlocked"
echo>password.txt 1234
echo>tipp.txt 1234
attrib +h +s "password.txt"
attrib +h +s "tipp.txt"
rem cls
echo(
echo Private folder created successfully.
CHOICE /C X /T 1 /D X > nul
goto :END

:OPEN
color 2F
rem cls
echo(
echo Password tipp: %tipp%
echo(
echo Enter password to unlock folder or
echo enter "new" to set a new password.
echo(
set "pass="
rem set /p "pass=Password: "
Set /P "=Password:" < Nul
Call :PasswordInput pass

if /i "%pass%"=="new" goto :NEWPASS
if "%pass%"=="%password%" (
    attrib -h -s "Locked"
    ren "Locked" "Unlocked"
    echo(
    echo Folder unlocked successfully.
    goto :END
)
goto :FAIL

:FAIL
color 4F  
rem cls
echo(
echo Invalid password, please try again.
CHOICE /C X /T 1 /D X > nul
rem cls
goto :OPEN

:NEWPASS
color 8F
rem cls
echo(
set "oldpass="
rem set /p "oldpass=Old password: "
Set /P "=Old Password:" < Nul
Call :PasswordInput oldpass

if not "%oldpass%"=="%password%" goto :FAIL

:ENTERNEW
color 8F
rem cls
echo(
set "newpass=""
rem set /p "newpass=New password: "
Set /P "=New Password:" < Nul
Call :PasswordInput newpass

set newpass=%newpass:"=%
if "%newpass%"=="" (
    echo(
    echo Invalid new password, please enter new password again.
    CHOICE /C X /T 1 /D X > nul
    goto :ENTERNEW
)
if exist "password.txt" attrib -h -s "password.txt"
echo>password.txt %newpass%
echo(
set "passtipp=""
set /p "passtipp=New tipp: "
set passtipp=%passtipp:"=% 
if exist "tipp.txt" attrib -h -s "tipp.txt"
if not "%passtipp%"=="" (
    echo>tipp.txt %passtipp%
) else (
    del "tipp.txt" 
)
goto :SETPASS 

:END
color
EndLocal
Goto :Eof

:PasswordInput
::Author: Carlos Montiers Aguilera
::Last updated: 20150401. Created: 20150401. 
::Set in variable Line a input password
::
::Update 20150503: http://stackoverflow.com/users/3439404/josefz?tab=profile
::Changes made in next lines:
::    SetLocal EnableDelayedExpansion
::    If !CHR!==!CR! Echo(&EndLocal&set "%1=%Line%"&Goto :Eof
::Usage:
::    Call :PasswordInput variableName
::where variableName is a name of output variable (by reference call)
:: 
SetLocal EnableDelayedExpansion
For /F skip^=1^ delims^=^ eol^= %%# in (
'"Echo(|Replace.exe "%~f0" . /U /W"') Do Set "CR=%%#"
For /F %%# In (
'"Prompt $H &For %%_ In (_) Do Rem"') Do Set "BS=%%#"
Set "Line="
:_PasswordInput_Kbd
Set "CHR=" & For /F skip^=1^ delims^=^ eol^= %%# in (
    'Replace.exe "%~f0" . /U /W') Do Set "CHR=%%#"
If !CHR!==!CR! Echo(&EndLocal&set "%1=%Line%"&Goto :Eof
    If !CHR!==!BS! (If Defined Line (Set /P "=!BS! !BS!" <Nul
        Set "Line=!Line:~0,-1!"
    )
) Else (Set /P "=*" <Nul
If !CHR!==! (Set "Line=!Line!^!"
    ) Else Set "Line=!Line!!CHR!"
)
Goto :_PasswordInput_Kbd
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向脚本添加密码屏蔽 的相关文章

  • 如何设置任务在使用 vbs 登录时以当前用户身份运行而无需管理员权限?

    从命令行 我可以创建一个在登录时运行的计划任务 无需管理员权限或用户输入密码来设置任务 但是我必须使用 xml 文件来执行此操作 下面是一个示例 xml 其中 Domain User 部分必须在运行时替换为当前用户的域和名称
  • 批处理脚本 - IF EXIST 复制到 %localappdata% 错误

    我似乎被批处理脚本困住了 需要一些帮助 基本上我需要检查文件是否存在于文件夹中 localappdata 如果确实如此 则覆盖该文件 如果没有放置在不同的位置 那么目前它的内容如下 IF EXIST localappdata foldern
  • 围绕 readline 构建的 python 批处理的触发器选项卡完成

    背景 我有一个 python 程序 它导入并使用 readline 模块来构建自制的命令行界面 我有第二个 python 程序 围绕 Bottle 一个 Web 微框架构建 充当该 CLI 的前端 第二个 python 程序向第一个程序打开
  • 为什么批处理文件中的 RMDIR 作为最后一个命令没有删除文件夹?

    我的 bat 文件中有以下代码 echo off xcopy Y S CD Code Release C Users USERNAME Desktop ShareIt I cls cd C Users USERNAME Desktop Sh
  • Chrome 扩展 - 消息传递到批处理文件

    我使用了示例项目https developer chrome com extensions samples https developer chrome com extensions samples我能够运行 python 本机应用程序 有
  • 如何使用批处理文件同时运行多个python脚本

    我有很多 python 脚本 通过单击它们单独运行每个脚本是一件痛苦的事情 如何制作一个批处理文件来一次运行它们 只需制作一个像这样的脚本作为每个任务的后台 在 Windows 上 start B python script1 py sta
  • 批处理文件-选择选项-设置默认选项

    在下面的示例批处理文件中 我有几个选项供用户选择 另外 我想设置一个默认选项 例如 我希望用户能够点击 ENTER 然后从我的列表中选择默认选项 我选择的 假设选项 1 谢谢您的帮助 ECHO OFF selector set input
  • 带有 FOR 的批处理脚本不起作用

    我需要以下脚本的帮助 machine txt 的下一行不会继续 如果我把 放在 echo machine 后面 它会显示 machine txt 中的机器 因此 它可以工作 但是当 位于脚本末尾时 它不会继续 并退出 echo off se
  • 批量检测系统是32位还是64位

    有谁知道如何创建一个批处理文件 如果是 64 位系统 可以对一个程序进行 shell 处理 如果是 32 位系统 则可以对另一个程序进行 shell 处理 检查 PROCESSOR ARCHITECTURE being x86 if PRO
  • 将目录添加到path环境变量

    我的要求是将目录之一添加到path安装我的应用程序时 Windows 中的环境变量并将其删除path使用批处理文件卸载时的环境变量 在与此相关的 stackoverflow 答案之一中 建议将目录添加到路径环境变量中 setx path C
  • 以不可见模式运行主bat文件

    我有一个大师 bat文件有 call file1 bat call file2 bat call file3 bat call file4 bat 我想在我的 Windows Server 2008 上安排它以静默 不可见模式运行 我正在寻
  • 如何查找具有特定模式的文件夹和文件

    我想编写一个批处理文件 该文件将写入日志包含特定模式以及排除文件夹的所有文件和文件夹 但没有成功 ECHO OFF for r c x in david do echo x findstr f exclude txt c x gt nul
  • 如何使用批处理文件将多个命令插入到批处理文件中

    我正在制作一个批处理文件 我们称之为 Create bat 它将创建一个批处理文件 我们称之为 Created bat 该文件将在其中插入多个命令 其中一条命令如下 FOR F x IN tasklist NH FI IMAGENAME e
  • 批量修改XML文件

    好的 所以我不太熟悉使用 For F 如果文件是静态的并且有一组可以跳过然后从中提取数据的行 我可以修改它 我目前正在尝试修改 XML 文件 该文件将具有不同数量的行 但始终具有以下内容
  • 找到第一个命中后停止 DIR 命令搜索

    在 CMD EXE 中我可以使用以下命令搜索某些内容DIR 以下面的例子为例 DIR C EXCEL EXE A D B S 虽然需要一段时间才能看清C 盘的整个结构 但是第一次匹配还是比较快的 Q 有没有办法自动地一旦发现命中 就停止命令
  • Windows Batch 帮助从命令输出设置变量[重复]

    这个问题在这里已经有答案了 我需要运行一个简单的 find 命令并将输出重定向到 Windows 批处理文件中的变量 我已经尝试过这个 set file ls find txt echo file 但这不起作用 如果我运行此命令 它可以正常
  • REG ADD - 语法无效

    我试图通过在批处理文件中使用以下代码行来修改注册表中的值 但当我在参数周围使用双引号时 我不断收到 错误 语法无效 而当我使用单引号时 我不断收到 无效的键名 REG ADD HKLM SOFTWARE Microsoft Windows
  • 如何让批处理文件等待另一个批处理文件完成执行?

    如何让一个批处理文件等待另一个批处理文件完成 例如 我有 echo hi gt r txt echo some piece of code gt gt r txt start ar bat echo some piece of code g
  • 在批处理文件中添加 +1 到日期

    我有一个批处理文件 可以很好地创建今天的日期 现在我需要更新它以显示明天的日期 任何帮助深表感谢 echo off set TimeStamp 12 00 00 FOR F TOKENS 1 DELIMS A IN DATE T DO SE
  • 批处理:将文件移动到名称第一个字母的文件夹?

    我想要 3 个文件夹 A G H T 和 U Z 我希望文件能够根据名称的第一个字母通过批处理自动分类到这些文件夹中 有办法做到这一点吗 谢谢你 ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION SET so

随机推荐

  • jQuery 的 crossdomain.xml?

    我有一个托管在 Tumblr 上的博客 我有一个单独的主机 我在其中存储我制作的主题的所有图像 js css 等 不过 我也在使用查询加载器2 http www gayadesign com diy queryloader2 preload
  • 将变量注入 webpack

    我试图将一个变量注入到 webpack 包中的每个模块中 以便获得每个文件的 JS 错误的调试信息 我已启用 node filename true webpack 中的当前文件路径 https stackoverflow com quest
  • 为什么 form.submit() 不会触发“提交”事件?

    我正在使用 JavaScript submit 函数提交表单 form submit 但是当我使用 addEventListener 捕获我的提交事件时 它不起作用 form addEventListener submit function
  • 如何避免散点图/ggplot 中相同数据点的标签重叠?

    是否有任何函数等可以避免散点图中相同数据点的数据标签重叠 我已经检查了对 textxy direct label 和 geom text 的各种问题 答复 但没有成功 也许这根本不可能 以下是相关数据的示例 structure list c
  • 每次我登录游戏时,Unity Facebook SDK 都会不断要求我确认登录

    我正在使用 Unity3D 2018 2 6f1 和 Facebook SDK 这是用户单击登录按钮后我用来登录 Facebook 的代码 FB Init gt FB LogInWithReadPermissions new List
  • 在 SICP 中推广素数对

    我花了一些时间来研究 素数对 的生成SICP 第 2 2 3 节 作为常规接口的序列 例如 1 3 不 因为总和 4 1 4 是的 因为 sum 5 素数 这是我从头开始得到的 有效的 lang sicp RANGE helper func
  • Android DatePicker 在使用最小/最大限制时显示不可用月份

    我在 StackOverflow 上只发现了这个问题的另外 1 个实例 但尚未得到答复 去年 所以我想我应该再试一次 Android DatePicker Dialog 使用最小 最大日期显示不正确的月份 秒 https stackover
  • 在 React 中使用 requestAnimationFrame

    我是原生反应新手 我正在尝试优化性能 我的触摸事件非常慢 我正在经历RN 性能文档 https facebook github io react native docs performance my touchablex view isn
  • 如何在rails3中使用amistad gem?

    我需要有关如何在 Rails3 应用程序中实现 AMISTAD gem 的帮助 请建议一些教程或观点 我看到了 github amistad 链接 但我想要对这颗宝石进行全面报道 请帮我 gem 创建者请给我发送一个如何使用 GEM 的示例
  • 是否可以在 android 中使用 Actionbar sherlock 在操作菜单项中实现切换按钮

    我有一个应用程序 它在操作菜单项中有切换按钮 尽管我使用的是 Actionbar Sherlock 但我不知道如何将切换按钮放置在操作菜单项中 我不想将其作为自定义布局放置在操作栏中 但我想将其放置为菜单项 如果有人找到解决方案 请帮助我
  • Google Analytics(分析)不会跟踪 iOS 上的视图?

    我已将最新的 Google Analytics SDK 添加到我的 iOS 应用程序中 版本 2 0 beta 4 我按照指南所述进行了相同的操作 并将以下代码添加到应用程序委托中 Optional automatically send u
  • 如何从现有的 github 项目添加 helm 存储库?

    我有一个现有的 github 项目 我想创建 添加一个helm文件夹到项目中以存储 helm yaml 文件 我想引用这个 github 项目 文件夹来充当我的本地 开发环境中的 helm 存储库 我知道我可以将图表添加到我的本地 默认 h
  • 为Unity构建一个简单的在线游戏服务器

    我正在尝试为我的坦克游戏 2D Unity 构建一个在线游戏服务器 在我的游戏中会有2 4名玩家控制他们的坦克并互相战斗 我尝试过使用 Unity 网络 它不太适合我的游戏 因为我们必须选择房间中的 1 名玩家作为 服务器 这对于我未来的开
  • 固定分配 std::vector

    我是一名嵌入式软件开发人员 因此我不能总是使用所有优秀的 C 功能 最困难的事情之一是避免动态内存分配 因为它对于所有 STL 容器来说都是通用的 The std vector然而 在处理可变数据集时非常有用 但问题是分配 例如std re
  • 将命令行参数传递给 Clozure common lisp

    我之前熟悉python 现在我正在尝试学习common lisp并在windows系统下使用ccl clozure common lisp 我发现没有一种方便的方法来将 lisp 文件作为 python 运行 所以我写了一个bat文件来编译
  • 无法访问映射到 docker 容器端口的主机上的端口

    我已经使用命令启动了一个 docker 容器 sudo docker run it P d plcdimage 该映像是使用具有 EXPOSE 8080 指令的 Dockerfile 构建的 容器运行 jboss 服务器 并在其上部署了应用
  • 如何从函数(UDF)返回表变量?

    我正在使用 SQL Server 2012 并且一直在尝试许多不同的方法来从函数内部返回表变量 但我无法让它工作 我尝试过将变量声明移动到不同的位置等 这是 sql 的核心内容 如果您可以将内容包装在一个 UDF 函数中 该函数实际编译并返
  • 在 Android 上以编程方式发送彩信

    我在执行一项任务时遇到了问题 我应该在 android 2 1 上使用我们自己的界面发送彩信 所以你可以猜测调用默认的 Activity 是不可能的 所以我的问题是 有没有一种方法可以使用 android SDK 以编程方式发送彩信 没有说
  • 如何将 Twitter 小部件插入 GWT 视图

    我有一个在 GWT 应用程序中创建的视图 我想嵌入 使用 twitter 提供的 Twitter 小部件之一 就像这个 http twitter com about resources widgets widget search http
  • 向脚本添加密码屏蔽

    为了练习 我正在编写一个程序来隐藏文件夹 程序本身运行良好 但我想用星号 屏蔽我的输入 我找到了将输入屏蔽为独立脚本的代码 但我无法找到将代码集成到我的代码中的方法 任何帮助将不胜感激 程序代码 echo off color 5F titl