批处理路径中的空格

问题描述 投票:0回答:1

我有一个CSV文件,每行要删除的引号和结尾的双引号是我要删除的,并制作了一个DOS批处理。以下适用于显式路径:

@echo off
setlocal enabledelayedexpansion
for /F "tokens=*" %%A in (C:\Folder\WrappedInQuotes.csv) do (
    set line=%%A
    echo !line:~1,-1! >> C:\Folder\UnWrapped.csv
)

当然,如果路径中有空格,以下将不起作用:

@echo off
setlocal enabledelayedexpansion
for /F "tokens=*" %%A in (C:\Folder\Sub Folder\WrappedInQuotes.csv) do (
    set line=%%A
    echo !line:~1,-1! >> C:\Folder\Sub Folder\UnWrapped.csv
)

((@echo on,消息当然是“ ...cannot find the file C:\Folder\Sub”)

作为下一步测试,我只是将两个显式文件规范包装在双引号中:

@echo off
setlocal enabledelayedexpansion
for /F "tokens=*" %%A in ("C:\Folder\Sub Folder\WrappedInQuotes.csv") do (
    set line=%%A
    echo !line:~1,-1! >> "C:\Folder\Sub Folder\UnWrapped.csv"
)

[使用@echo onFor似乎正在获取正确的文件规范(原始CSV),但是现在目标CSV具有]]

:\Folder\Sub Folder\EachLineWrappedInQuotes.cs

(源CSV完整文件规范,删除了第一个和最后一个字符,而不是删除了第一个和最后一个字符(双引号)的源CSV的内容。

[最终,我想用像%~dp0这样的路径变量来替换显式路径,但是还不能通过“下一步测试”。

((我试图通过研究已经给出的许多答案来解决这个问题,但是没有成功,对不起!)

我有一个CSV文件,每行要删除的引号和结尾的双引号是我要删除的,并制作了一个DOS批处理。以下适用于显式路径:@echo off setlocal enabledelayedexpansion ...

windows batch-file filepath
1个回答
0
投票

要获取文件的内容并删除双引号,而无需设置变量,请设置usebackq

© www.soinside.com 2019 - 2024. All rights reserved.