我正在创建一个批处理文件以从文本文件中的列表创建多个目录,但是在列出目录之后,有时文件名也是如此。有没有一种简单的方法让它忽略一行最后一个 \ 之后的所有数据?
JAcobv
问问题
1762 次
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 回答