batch-file - “for /f .... do”在第一行不起作用
问题描述
我使用以下批处理文件删除具有完整路径的文件。输出文件的第一行是错误消息“文件名、目录名或卷标语法不正确”。C:\DELETE-ALL-FULLPATH.txt 中的所有文件都被删除,除了第一个文件。我想知道为什么第一行会导致问题。
@REM This script deletes files which include full path.
@if exist C:\DELETE-all-fullpath-output.txt DEL /Q c:\DELETE-all-fullpath-output.txt
@for /f "tokens=* eol=@ delims=" %%A in ( C:\DELETE-ALL-FULLPATH.txt) do (
@DEL /Q /A "%%A"
) >> C:\DELETE-all-fullpath-output.txt 2>&1
CD /D C:\
这些是 C:\DELETE-ALL-FULLPATH.txt 的前两行。除数字不同外,所有行的格式相同。除第一个文件外,所有列出的文件都将被删除。
c:\Users\administrator\documents\IMG_20190229_134600.jpg
c:\Users\administrator\documents\IMG_20191229_134202.jpg
......
解决方案
请试一试。
@echo off
REM This script deletes files which include full path.
del /Q c:\DELETE-all-fullpath-output.txt>nul 2>&1
for /f "usebackq delims=" %%A in ("C:\DELETE-ALL-FULLPATH.txt") do (
if exist "%%~A" del /Q /A "%%~A"
)>>c:\DELETE-all-fullpath-output.txt 2>&1
编辑
查看您的文件后,它确实是启用了 BOM 的 UTF-8。
在记事本中打开文件,然后选择另存为。在编码选项卡中,仅选择 UTF-8,无 BOM。
推荐阅读
- android - 虚线下划线 TextView 不使用 Android 中的 SpannableString 换行到下一行
- react-native - 为 :react-native-firebase:compileDebugJavaWithJavac 编译 Java 712 ms
- php - 将php代码保存到文件中而不解释它
- java - SpringBoot:使用构造函数依赖注入测试服务
- javascript - 使用 jquery 自动播放 Youtube 视频
- php - 一周中的一天
- php - 创建可在各种元素/类中的可重用 ACF 字段
- android - 如何在开发板上升级android sdk版本?
- python-3.x - 在熊猫 csv 读取时处理未知数量的列
- angular - 识别订阅中 concat 的特定 observable