我想删除指定的磁盘中某个文件,以下是代码:
:delfile
echo.
echo.
set /p delfile=请输入你要删除的磁盘文件
for %%a in (C: D: E: F: G: H: I: ) do (
for /f "delims=" %%b in ('dir /s /b /ah %%a\%filename%') do (
del /F /S /Q %%b
)
)
goto finddel
但是我连系统文件都删除了,搞摊了系统,这是为什么啊!我只是输入了一个普通的文本文件,而以下的代码确没有就没有,为什么呢,请大家帮我查出我的问题在哪啊:
@echo off
set/p f=请输入这个文件的名称:
set/p t=删除文件请按d:
for %%a in (c d e ) do call :%t% %%a
:d
rem 我的理解是for把c d e作为参数传给了%%a ,而%%a又作为call的第一个参数
for /r %1:\ %%i in ("%f%") do del/f/q/a/s "%%i
rem for先后遍历指定磁盘下的文件再把路径传给%%i,在del
可是我上面的代码也是这个思路啊!怎么就连系统的文件都给删了呢?我的问题出在那呢?
:delfile
echo.
echo.
set /p delfile=请输入你要删除的磁盘文件
for %%a in (C: D: E: F: G: H: I: ) do (
for /f "delims=" %%b in ('dir /s /b /ah %%a\%filename%') do (
del /F /S /Q %%b
)
)
goto finddel
但是我连系统文件都删除了,搞摊了系统,这是为什么啊!我只是输入了一个普通的文本文件,而以下的代码确没有就没有,为什么呢,请大家帮我查出我的问题在哪啊:
@echo off
set/p f=请输入这个文件的名称:
set/p t=删除文件请按d:
for %%a in (c d e ) do call :%t% %%a
:d
rem 我的理解是for把c d e作为参数传给了%%a ,而%%a又作为call的第一个参数
for /r %1:\ %%i in ("%f%") do del/f/q/a/s "%%i
rem for先后遍历指定磁盘下的文件再把路径传给%%i,在del
可是我上面的代码也是这个思路啊!怎么就连系统的文件都给删了呢?我的问题出在那呢?

