我使用以下批处理文件删除多个驱动器上的不需要的文件。
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
这很有效。它删除单个目录中的文件。但现在我需要它做更多。我需要批处理文件来删除不同目录中的文件。因此,它归结为如何动态更改目录。
非常感谢任何帮助。
答案 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 \”作为路径前缀。否则,它假定该行包含文件名。由于文件名中不允许使用反斜杠,因此该假设是安全的。
希望这会有助于其他人。