Command line 简单的DOS命令行忽略最后一个反斜杠后一行上的数据

Command line 简单的DOS命令行忽略最后一个反斜杠后一行上的数据,command-line,dos,Command Line,Dos,我正在创建一个批处理文件,以便从文本文件中的列表生成多个目录 但是,在列出目录后,有时也会显示文件名。有没有一种简单的方法可以让它忽略一行中最后一个\之后的所有数据?我可能会建议DOS批处理不是这个工作的合适工具,因为它没有内置的工具来进行这样的字符串操作 如果有可用的Perl,可以执行以下操作: #!/usr/bin/perl -w while (<>) { s/\\[^\\]*$//; # this removes a the last backslash and an

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

我可能会建议DOS批处理不是这个工作的合适工具,因为它没有内置的工具来进行这样的字符串操作

如果有可用的Perl,可以执行以下操作:

#!/usr/bin/perl -w

while (<>) {
    s/\\[^\\]*$//; # this removes a the last backslash and anything after it
    mkdir $_;
}
@echo off
set filename="c:\temp\my files\file.txt"
for /f "tokens=*" %i in ("%filename%") do set filename="%~dpi"
echo %filename%

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

如果有可用的Perl,可以执行以下操作:

#!/usr/bin/perl -w

while (<>) {
    s/\\[^\\]*$//; # this removes a the last backslash and anything after it
    mkdir $_;
}
@echo off
set filename="c:\temp\my files\file.txt"
for /f "tokens=*" %i in ("%filename%") do set filename="%~dpi"
echo %filename%

您可以使用以下内容:

#!/usr/bin/perl -w

while (<>) {
    s/\\[^\\]*$//; # this removes a the last backslash and anything after it
    mkdir $_;
}
@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\。

您可以使用如下内容:

#!/usr/bin/perl -w

while (<>) {
    s/\\[^\\]*$//; # this removes a the last backslash and anything after it
    mkdir $_;
}
@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\。

这篇文章的示例显然是为*nix环境设置的,因此可能值得注意的是,您可以使用Perl for Windows,而且设置起来非常简单。这很好,php中有类似的东西吗?是的,你可以在php中做类似的事情,但是因为我不太懂php,所以我不能给出一个很好的例子。这篇文章的例子显然是为*nix环境设置的,所以可能值得注意的是,你可以在Windows中使用perl,而且很容易设置。只需访问perl站点。这很好,php中有类似的东西吗?是的,你可以在php中做类似的事情,但是因为我不太懂php,所以我不能给出一个很好的例子。+1:回答了问题!您可以在Start | Help中找到for'命令的帮助,然后搜索命令行参考A-Z,单击'F'并滚动到'for'仅可通过搜索或索引使用connamd line reference'主题。+1:回答了问题!您可以在Start | Help中找到for'命令的帮助,然后搜索命令行参考A-Z,单击'F'并滚动到'for'。connamd line reference'主题仅通过搜索或索引可用。