批处理脚本:如何在for循环中读取带空格的文件

Batch script: how to read file with spaces in for loop

如何读取带空格的文件名,

基本上一个文件夹将包含具有不同扩展名的相同文件名,我想删除其中一个扩展名为 .csv.completed.

的文件

例如

abc t1.xlsx
abc t1.csv.completed

以下代码无法正常工作其给出的消息.... 系统找不到文件 C:\Users\demo\Desktop\des_cp\"*.xlsx".

脚本

@echo off

for /F "usebackq delims==" %%I in ("C:\Users\demo\Desktop\des_cp\*.xlsx") do (
    if exist "C:\Users\demo\Desktop\des_cp\%%~nl.completed" del %%I
)

for /f 处理文件的 content。要处理 files(文件名),请使用普通 for:

for %%I in ("C:\Users\demo\Desktop\des_cp\*.xlsx") do echo %%I

此代码应该有效。

@echo off

for %%I in ("C:\Users\demo\Desktop\des_cp\*.xlsx") do (
    if exist "C:\Users\demo\Desktop\des_cp\%%~nI.csv.completed" del "C:\Users\demo\Desktop\des_cp\%%~nxI"
)