批量 "file not found"
Batch "file not found"
我正在批量制作安全文件夹应用程序,但 运行 出错了。
锁定命令:
:lock
ren "Secure Folder" "Secure Folder (Locked)"
attrib +h +s "Secure Folder (Locked)"
msg * Folder locked.
goto end
解锁命令(错误所在):
:unlock
attrib -h -s "Secure Folder (Locked)"
ren "Secure Folder (Locked)" "Secure Folder"
pause
::Pause is to see the error
goto end
错误是:
File not found - Secure Folder (Locked)
文件夹是这样创建的:
:creation
md "Secure Folder"
cd Secure Folder
md Movies
md Pictures
md Music
md Bonuses
cd Bonuses
echo .LOG>Log.txt
cd %USERPROFILE%
md userpass
cd userpass
set /p userpass=Enter the password you would like to use for this application:
echo %userpass%>userpass.txt
msg * Folder created.
goto end
这是解锁的初始化方式:
:password
cd %USERPROFILE%\userpass
<userpass.txt set /p userpass=
set /p password=Enter password to unlock:
If /I "%password%"=="%userpass%" goto unlock
goto fail
我有一个程序可以在遇到错误时解锁文件夹。该程序的代码是:
@echo off
attrib -h -s "Secure Folder (Locked)"
ren "Secure Folder (Locked)" "Secure Folder"
我不知道为什么我的主要代码不起作用。会不会是因为之前用了"cd %USERPROFILE%"?
我已尝试将“解锁”代码移至我的代码顶部。
您正在对子文件夹执行 cd
,但从未对父文件夹执行 return。您可以改为使用 pushd
和 popd
,但这是更好的方法:
:creation
(md "Secure Folder\Movies"
md "Secure Folder\Pictures"
md "Secure Folder\Music"
md "Secure Folder\Bonuses
echo .LOG>"Secure Folder\Bonuses\Log.txt"
md "%USERPROFILE%\userpass"
)>nul 2>&1
set /p userpass=Enter the password you would like to use for this application:
(echo %userpass%)>"%USERPROFILE%\userpass\userpass.txt"
msg * Folder created.
goto :eof
您可以创建文件夹而无需 cd 到每个文件夹。换句话说:
mkdir "folder1\folder2\folder3"
将创建整棵树,您不必先创建父项,然后再创建子项。
一个略短的版本,通过使用 for 循环创建文件夹:
:creation
(for %%i in ("Movies" "Pictures" "Music" "Bonuses") do md "Secure Folder\%%~i"
echo .LOG>"Secure Folder\Bonuses\Log.txt"
md "%USERPROFILE%\userpass"
)>nul 2>&1
set /p "userpass=Enter the password you would like to use for this application: "
(echo %userpass%)>"%USERPROFILE%\userpass\userpass.txt"
msg * Folder created.
goto :eof
上述方法可确保您保留原始工作内容 dir
。
注意,您应该修改剩余代码以适应此方法。
:password
<"%USERPROFILE%\userpass\userpass.txt" set /p userpass=
set /p password=Enter password to unlock:
If /I "%password%" == "%userpass%" goto unlock
goto fail
我正在批量制作安全文件夹应用程序,但 运行 出错了。
锁定命令:
:lock
ren "Secure Folder" "Secure Folder (Locked)"
attrib +h +s "Secure Folder (Locked)"
msg * Folder locked.
goto end
解锁命令(错误所在):
:unlock
attrib -h -s "Secure Folder (Locked)"
ren "Secure Folder (Locked)" "Secure Folder"
pause
::Pause is to see the error
goto end
错误是:
File not found - Secure Folder (Locked)
文件夹是这样创建的:
:creation
md "Secure Folder"
cd Secure Folder
md Movies
md Pictures
md Music
md Bonuses
cd Bonuses
echo .LOG>Log.txt
cd %USERPROFILE%
md userpass
cd userpass
set /p userpass=Enter the password you would like to use for this application:
echo %userpass%>userpass.txt
msg * Folder created.
goto end
这是解锁的初始化方式:
:password
cd %USERPROFILE%\userpass
<userpass.txt set /p userpass=
set /p password=Enter password to unlock:
If /I "%password%"=="%userpass%" goto unlock
goto fail
我有一个程序可以在遇到错误时解锁文件夹。该程序的代码是:
@echo off
attrib -h -s "Secure Folder (Locked)"
ren "Secure Folder (Locked)" "Secure Folder"
我不知道为什么我的主要代码不起作用。会不会是因为之前用了"cd %USERPROFILE%"?
我已尝试将“解锁”代码移至我的代码顶部。
您正在对子文件夹执行 cd
,但从未对父文件夹执行 return。您可以改为使用 pushd
和 popd
,但这是更好的方法:
:creation
(md "Secure Folder\Movies"
md "Secure Folder\Pictures"
md "Secure Folder\Music"
md "Secure Folder\Bonuses
echo .LOG>"Secure Folder\Bonuses\Log.txt"
md "%USERPROFILE%\userpass"
)>nul 2>&1
set /p userpass=Enter the password you would like to use for this application:
(echo %userpass%)>"%USERPROFILE%\userpass\userpass.txt"
msg * Folder created.
goto :eof
您可以创建文件夹而无需 cd 到每个文件夹。换句话说:
mkdir "folder1\folder2\folder3"
将创建整棵树,您不必先创建父项,然后再创建子项。
一个略短的版本,通过使用 for 循环创建文件夹:
:creation
(for %%i in ("Movies" "Pictures" "Music" "Bonuses") do md "Secure Folder\%%~i"
echo .LOG>"Secure Folder\Bonuses\Log.txt"
md "%USERPROFILE%\userpass"
)>nul 2>&1
set /p "userpass=Enter the password you would like to use for this application: "
(echo %userpass%)>"%USERPROFILE%\userpass\userpass.txt"
msg * Folder created.
goto :eof
上述方法可确保您保留原始工作内容 dir
。
注意,您应该修改剩余代码以适应此方法。
:password
<"%USERPROFILE%\userpass\userpass.txt" set /p userpass=
set /p password=Enter password to unlock:
If /I "%password%" == "%userpass%" goto unlock
goto fail