批量删除目录变量 - Windows 7

时间:2016-09-07 02:51:14

标签: windows batch-file

我使用以下批处理文件删除多个驱动器上的不需要的文件。

set /p DELPATH=<"C:\DELETE-ALL.txt" 

for /f "usebackq delims=;" %%i in ("C:\DELETE-ALL.txt") do @del /q "D:\HFI\%DELPATH%\%%i" > C:\DELETE-ALL-4.txt 2>&1
... same command for other local and network drives.

DELETE-ALL.txt如下所示:

mydirectory
TEST.xlsx
TEST2.xlsx

这很有效。它删除单个目录中的文件。但现在我需要它做更多。我需要批处理文件来删除不同目录中的文件。因此,它归结为如何动态更改目录。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

我在这里回答你,因为我现在不能以较低的声誉发表评论。

我强烈建议使用PowerShell或python或其他程序脚本来执行此操作。使用Windows批处理,你将花费更多的时间来找到一个好的方法,并且可能没有办法做这么复杂的密码。

答案 1 :(得分:0)

答案结果比我想象的容易。虽然我原来的问题是删除文件,但是我让它用于重命名。它应该适用于删除,几乎没有修改。

 @(for /f "tokens=1,2 delims=;" %%A in ('"TYPE C:\RENAME-ALL.txt"') do (
 @echo "%%A" | find /i "\" 
  @if errorlevel 1 (
  RENAME "%%A" "%%B" >> C:\RENAME-ALL-4.txt 2>&1
  ) ELSE (
 CD /D D:\mydirectory\%%A
  )
 )
 )

脚本查找“\”。如果找到,则假定该行是一个目录,并更改为相应的目录,其中“D:\ mydirectory \”作为路径前缀。否则,它假定该行包含文件名。由于文件名中不允许使用反斜杠,因此该假设是安全的。

希望这会有助于其他人。