win10启动文件夹中的bat文件

win10启动文件夹中的bat文件

使用制作了一个简单的脚本要从中删除所有文件的文件:

C:\Users\%USERNAME%\AppData\Local\Temp

我想在 PC 上所有用户登录个人资料时删除这些内容。
因此我将 bat 文件放入启动文件夹:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

这是我的蝙蝠文件:

cd C:\Users\%USERNAME%\AppData\Local\Temp
if exist "C:\Users\%USERNAME%\AppData\Local\Temp" del /F /Q *.*

问题是:

这种方法安全吗?
如果不安全,可能出现什么问题?我应该使用某种错误处理程序吗?

我可以安全地添加吗?if exist "C:\Users%USERNAME%\AppData\Local\CrashDump" del /F /Q .

答案1

为什么没有一行带有安全操作符重定向(条件执行&&) 和系统变量:

%userprofile%     // For your folder C:\Users\%USERNAME%\AppData\Local\CrashDump
%temp% or %tmp%   // For your folder C:\Users\%USERNAME%\AppData\Local\Temp
2>nul @(cd /d "%userprofile%\AppData\Local\CrashDump" && del /q /f *.*)
2>nul @(cd /d "%temp%" && del /q /f *.*)

观察:1代替cdcd /d

观察:2 2>nul可以忽略块内命令执行中的错误(command1command2commandn...),例如不存在的文件夹、正在使用的文件等。

观察:3 一个命令可以输出到多个流,并且可以将每个流重定向到不同的目的地。因此,2>nul简单1>nul地说,错误输出和正常输出将被重定向到 nul。因此不会输出任何内容。



答案2

这不安全。首先,您需要在将当前目录更改为该文件夹之前检查该文件夹是否存在。

@echo off
set "_path=C:\Users\%USERNAME%\AppData\Local\Temp"
if exist "%_path%" (
  cd "%_path%" 
  del /F /Q *.*
)

相关内容