我需要知道是否可以创建批处理代码,读取file.txt并根据其中的信息访问文件夹路径并删除文件。 在我的file.txt中,是SQL查询的结果。
my_file.txt
file_name, file_path
abcd, D:/user/desktop/teste123
efgh, D:/user/desktop/folder789
该批次需要读取“ file_name”(知道要删除的文件)和file_path(知道要删除的位置)。
有可能吗?请帮我
谢谢。
答案 0 :(得分:1)
您将运行for循环并在,
分隔符上进行拆分,并将每个变量用作变量。
因此,作为一个未经测试的示例,在这里我将拆分文件条目并分配2个令牌%%i
和%%j
@echo off
for /f "tokens=1,2 delims=," %%i in (my_file.txt) do echo "%%i" "%%j"
请注意,我在标记上添加了双引号,因为它可能包含空格。
看到您要删除,可能类似于:
@echo off
for /f "tokens=1,2 delims=," %%i in (my_file.txt) do echo del "%%j\%%i"
您将在其中删除回显以执行实际删除的地方。
根据您的评论,要跳过第一行并排除**rows affected
行,可以使用:
for /f "tokens=1,2 skip=1 delims=," %i in ('more my_file.txt ^| findstr /VI /C:"rows affected"') do del "%%j\%%i"
或者看到您正在使用更多,可以排除skip=1
并在+1
命令上使用more
。
for /f "tokens=1,2 delims=," %i in ('more +1 my_file.txt ^| findstr /VI /C:"rows affected"') do del "%%j\%%i"