1

我正在创建一个批处理文件以从文本文件中的列表创建多个目录,但是在列出目录之后,有时文件名也是如此。有没有一种简单的方法让它忽略一行最后一个 \ 之后的所有数据?

4

2 回答 2

4

你可以使用这样的东西:

@echo off
set filename="c:\temp\my files\file.txt"
for /f "tokens=*" %i in ("%filename%") do set filename="%~dpi"
echo %filename%

结果将是"c:\temp\my files\"

于 2008-11-11T21:43:32.413 回答
4

我可能会建议 DOS 批处理不是这项工作的正确工具,因为它没有像这样需要的用于字符串操作的内置工具。

如果你有 Perl 可用,你可以这样做:

#!/usr/bin/perl -w

while (<>) {
    s/\\[^\\]*$//; # this removes a the last backslash and anything after it
    mkdir $_;
}
于 2008-11-11T21:29:10.353 回答