我想遍历一个CSV文件并在两列中创建一个完整路径变量 - 并且只有一个特定列的值为“文件夹”。批处理文件 - 通过csv循环并从两列创建路径变量
这实际上现在正常工作,但不工作的部分是创建路径变量。
两点:
两个栏我看是最深的文件夹和文件夹的根aboth。像这样: first/first1/+ second = first/first1/second
因此,最深处的文件夹将会被填满,我可以把它当作它来使用。
上面的文件夹将被填充,或者它将成为列中的0。 同样的字符串将有一个 “/”,我不得不削减并用反斜杠代替..
这里是我的代码:
For /F "tokens=1-7 delims=;" %%a in (L:/Mappe1.csv) Do (
if "%%b"=="Folder" (
set folder=%%c
if NOT %%f==0 (
set rootFolder ==f
rem check for slash..
if %rootFolder=~-1%==/ (
rem cut it out
SET rootFolder=%rootFolder:~0,-1%
)
rem both variables set
set finalPath=%rootFolder%%folder%
) else (
rem just the folder
set finalpath=%folder%
)
echo %finalpath%
)
)
SAMPE的CSV的:
ID; PROGID; NAME; PARENTID; PARENT_FOLDER;路径; ISNTANCE; DESC;订购; 23; Folder; Stammordner; 4; 4; PRODUKTION /; 0 ;;;
什么是不工作:
现在我得到的“回声是关闭”输出,每次我跑。我认为最后的路线没有设定,但我不明白。
也是我不知道如果我这样做的方式,它是常见的方式 - 我这么多的新批次 - 即使我是一个开发其在某种程度上对我来说很复杂..
Regards
如果您提供了'csv'文件和'描述任务'的样本,那么我们可能会找到一个更直接的方法来做到这一点。 – foxidrive
嘿,谢谢你的回答..我以为我有一个语法错误,这就是为什么我没有提供一个样本。我编辑的主要职务有样品和for循环,我用 – Martin
你的代码有错误:此刻的你正在检查的第六令牌,如果它不为“0”,你是“token6/token2”,否则设置变量将变量单独设置为“token2”。是吗?文件夹分隔符是/还是\? – foxidrive