程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了批处理 - 有没有办法用变量大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决批处理 - 有没有办法用变量?

开发过程中遇到批处理 - 有没有办法用变量的问题如何解决?下面主要结合日常开发的经验,给出你关于批处理 - 有没有办法用变量的解决方法建议,希望对你解决批处理 - 有没有办法用变量有所启发或帮助;

所以我在搞批处理,我想在我想要的任何子目录中创建一个垃圾文件夹, 我给你看代码你就明白了。

@H_404_3@@echo off
set "var=%cd%"
if not EXIST trash goto create
if EXIST trash goto exists

:create
mkdir trash
echo [.SHellClassInfo] Iconresource=C:\windows\System32\SHelL32.dll,63 [VIEwState] Mode= VID= FolderType=Generic > trash\desktop.ini
attrib +h +s trash\desktop.ini
cd ..
attrib +r +s %var%\trash
goto end

:exists
echo Would you like to delete the files insIDe of the trash? (y/n)
set /p YEsno=" "
if not %YEsno%==y goto end
if %YEsno%==y goto check

:check
echo Please state the correct password
set /p passworD=" "
if %passworD%==1243 del trash\*.* /s /f /q
goto end

:end

在创建区域中,我试图给它一个回收站标志的东西,你需要给 desktop.ini 隐藏和系统属性和工作,但给垃圾文件夹本身只读和系统属性没有'工作。我不能只使用任何旧的直接路径的原因是因为我希望您能够在任何路径中使用它。

解决方法

抱歉,我对 stackoverflow 不熟悉,所以我无可以理解,但我希望这已经足够了。

首先,您在处理变量时有很多错误,使用密码的想法非常好,但不切实际。批次不是为此而制造的。我教授软件安全和渗透测试课程,并且确实有一个类似的脚本供学生破解密码。更何况你在删除和恢复文件时会遇到很多问题,而且用户不需要通过你的程序来做你想做的,除了使用普通垃圾箱非常实用。好主意,如果你愿意,我可以帮你解决这个问题,但我认为除了以优惠、随意和个性化的方式处理内容之外,它不会有太大用处。

好吧,您脚本中的第一个错误是没有在 desktop.ini 代码之间留出空格,并且没有使用 attrib 为其正确分配值,也可能没有使用正确的垃圾桶图标代码。

Windows 的 desktop.ini 文件存在一些错误并且延迟很大,但您需要执行以下操作:

@echo off
set "var=%cd%"
if not EXIST trash goto create
if EXIST trash goto exists

:create
mkdir trash
set katorn=%random%
md "%temp%\%katorn%"
:: As we can see bellow,SHelL32.dll,31 means empty trash ico,32 means full trash ico.
(
echo [.SHellClassInfo]
echo Iconresource=C:\Windows\system32\SHelL32.dll,31
echo [ViewState]
echo Mode=
echo Vid=
echo FolderType=Generic
)>"%temp%\%katorn%\desktop.ini"
attrib +S +H "%temp%\%katorn%\desktop.ini"
del /q /f /s "%var%\trash\desktop.in*"
move "%temp%\%katorn%\desktop.ini" "%var%\trash"
rd /s /q "%temp%\%katorn%"
attrib +r +s %var%\trash
goto end

:exists
echo Would you like to delete the files inside of the trash? (y/n)
set /p YEsno=" "
if not %YEsno%==y goto end
if %YEsno%==y goto check

:check
echo Please state the correct password
set /p passworD=" "
if %passworD%==1243 del trash\*.* /s /f /q
goto end

:end

您也可以插入 VBScript 来制作快捷方式,然后插入图标。

Set WshSHell = CreateObject ("Wscript.SHell")
strDesktop = WshSHell.SpecialFolders("Desktop")
Set Shortcut = WshSHell.CreateShortcut(strDesktop + "\ShortcutName.lnk")
Shortcut.WindowStyle = "4" 
Shortcut.IconLOCATIOn = "X:\ICoLOCATIOn\icon.ico"
Shortcut.TargetPath = "ProgramToBeOpened\program.exe"
Shortcut.Save

您可以使用批处理来编写和执行脚本。

@echo off
:loop
set /p "schname=Shortcut name: "
set /p "schLOCATIOn=Shortcut LOCATIOn: "
set /p "schdesTination=Shortcut DesTination: "
set /p "schicon=Icon LOCATIOn: "
set "schname=%schname:"=%"
set "schLOCATIOn=%schLOCATIOn:"=%"
set "schdesTination=%schdesTination:"=%"
set "schicon=%schicon:"=%"
echo >>"%temp%\shortcut.vbs" Set WshSHell = CreateObject ("Wscript.SHell")
echo >>"%temp%\shortcut.vbs" strDesktop = "%schdesTination%"
echo >>"%temp%\shortcut.vbs" Set Shortcut = WshSHell.CreateShortcut(strDesktop + "\%shcname%.lnk")
echo >>"%temp%\shortcut.vbs" Shortcut.WindowStyle = "4" 
echo >>"%temp%\shortcut.vbs" Shortcut.IconLOCATIOn = "%schicon%"
echo >>"%temp%\shortcut.vbs" Shortcut.TargetPath = "%schLOCATIOn%"
echo >>"%temp%\shortcut.vbs" Shortcut.Save
cscript "%temp%\shortcut.vbs"
del /q /f "%temp%\shortcut.vbs"
goto loop

希望这会有所帮助,
K.@H_874_41@

大佬总结

以上是大佬教程为你收集整理的批处理 - 有没有办法用变量全部内容,希望文章能够帮你解决批处理 - 有没有办法用变量所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:-批处理