1

我希望批处理文件询问序列号和用户名,并从用户配置文件中删除两个特定文件夹。我做了这个,但它似乎想*.*从我运行它的文件夹中删除。

@echo off

set /p serial="Enter Serial: "

set /p username="Enter Username: "

del *.* \\%serial%\C$\users\%username%\appdata\roaming\Microsoft\Windows\Recent\AutomaticDestinations
del *.* 
\\%serial%\C$\users\%username%\appdata\roaming\Microsoft\Windows\Recent\CustomDestinations
pause
4

4 回答 4

0

尝试下一个基本检查所有用户输入的方法:

@ECHO OFF
SETLOCAL EnableExtensions

:inputServer
set "serial="
set /p "serial=Enter Serial: "
if not defined serial goto :endlocal
pushd "\\%serial%\C$\"
if errorlevel 1 (
  echo wrong server name "\\%serial%"
  goto :inputServer
)

:inputUser
set "_username="
set /p "_username=Enter Username: "
if not defined _username goto :endstack
cd "\users\%_username%\appdata\roaming\Microsoft\Windows\Recent"
if errorlevel 1 (
  echo wrong user name "%_username%" or path
  echo "\\%serial%\C$\users\%_username%\appdata\roaming\Microsoft\Windows\Recent"
  goto :inputUser
)

dir AutomaticDestinations\*.*
dir CustomDestinations\*.*

:endstack
popd

:endlocal
pause

替换dirdel /Q不早于调试。

PUSHD-POPD对的资源

指定UNC路径后,PUSHD将创建一个临时驱动器映射,然后使用该新驱动器。临时驱动器号按字母倒序分配,因此如果Z:空闲,它将首先使用。

于 2015-09-01T22:45:25.070 回答
0

首先,删除@echo 直到您的代码正常工作,这样您就可以看到发生了什么,然后添加一些 echo 以查看您正在使用的变量中存储的内容。之后尝试使用 DIR 而不是 DEL,以便列出符合您条件的文件。

REM    @echo off

set /p serial="Enter Serial: "
Echo %serial%
pause

set /p username="Enter Username: "
echo %username%
pause
dir \\%serial%\C$\users\%username%\appdata\roaming\Microsoft\Windows\Recent\AutomaticDestinations\*.*
dir \\%serial%\C$\users\%username%\appdata\roaming\Microsoft\Windows\Recent\CustomDestinations\*.*
pause
于 2015-09-01T20:48:59.143 回答
0

c$ 是管理员隐藏资源,不登录就无法访问

如果要连接到远程计算机上的网络共享,请使用:net use * \servername\sharename

于 2015-09-01T14:22:30.753 回答
0

del命令的语法不允许将文件掩码与存储要删除的文件的路径分开,因此您需要使用

del /q "\\%serial%\C$\users\%username%\appdata\roaming\Microsoft\Windows\Recent\AutomaticDestinations\*.*"
del /q "\\%serial%\C$\users\%username%\appdata\roaming\Microsoft\Windows\Recent\CustomDestinations\*.*"

添加的引号将防止包含空格的路径出现问题,并且/q开关将避免安全确认以删除指示文件夹中的所有文件。

于 2015-09-01T14:22:52.853 回答