在 Windows 中管道无法与 For 循环一起使用

在 Windows 中管道无法与 For 循环一起使用

我有一个命令不起作用。

这里是:

mkdir \output & for /r %i in (*.pdf) do pdftotext -enc UTF-8 "%i" ".\output\%~ni.txt"

我究竟做错了什么?

答案1

首先,&是 & 符号。 |是管道。 & 符号 ( &) 允许您在一行上运行多个命令。管道 ( |) 将一个命令的输出重定向到另一个命令。因此,您的问题的标题并不反映您的实际问题。

第二,.\是当前目录,\是根目录。尝试使用以下cd命令使用它:

cd .\不会执行任何操作,因为它会“改变”到当前目录。
cd \ 将带您进入根文件夹,无论您位于多少个文件夹深处。

问题是你output在每个命令中使用了不同的文件夹。当你 时,它会在你所在的驱动器的根目录下mkdir \output创建一个名为 的文件夹,例如。稍后,你引用指向文件夹的引用outputc:\output.\outputoutput在你当前目录中, 喜欢c:\users\myUserName\output

您的命令应如下所示:

mkdir .\output & for /r %i in (*.pdf) do pdftotext -enc UTF-8 "%i" ".\output\%~ni.txt"

此外,您还可以在以下网址找到更多帮助https://stackoverflow.com/questions/tagged/cmd

相关内容