我有一个名为XX-randomString-numbers.jpg的9000个文件的文件夹,其中XX是我需要的ID号。
我需要将其导出为[XX |的CSV列表filename.jpg]这样我就可以在SQL中使用它了。
到目前为止,我把它拼凑在了一起:
Setlocal Enabledelayedexpansion
for %%A in ("C:\...\imageImport\*.jpg")
do (
set "str=%%~nA"
for /f "delims=-" %%a in ("%str%")
do set part=%%a
echo.%part%
)
答案 0 :(得分:1)
@Echo off
Setlocal Enabledelayedexpansion
( Echo ID^|Filename
for %%F in ("C:\...\imageImport\*.jpg"
) do for /f "delims=-" %%I in ("%%F"
) do set Echo %%I^|%%F
) >Out.csv
答案 1 :(得分:1)
您正在启用delayed expansion,但您没有使用它。无论如何,你的代码中不需要它,因为你真的不需要任何临时变量。您需要做的是更正for
loops的语法并删除do
前面的多余换行符。
所以这是固定代码:
for %%A in ("C:\...\imageImport\*.jpg") do (
for /F "delims=- eol=-" %%a in ("%%~nA") do (
echo(%%a^|%%~nA
)
)
要将结果写入文件output.csv
,请使用:
@echo off
> "output.csv" (
for %%A in ("C:\...\imageImport\*.jpg") do (
for /F "delims=- eol=-" %%a in ("%%~nA") do (
echo(%%a^|%%~nA
)
)
)
为eol=-
循环指定for /F
选项,不要忽略以默认eol
字符;
开头的文件,因此,eol
选项为有效停用,因为eol
隐藏在delims
后面,因为给出了相同的字符。