命令行对文本文件进行排序并将其复制到单个文件会导致错误

命令行对文本文件进行排序并将其复制到单个文件会导致错误

我偶然发现了问题 217394,它解释了如何将按字母顺序排序的文件复制到一个文件中。尝试自己执行该命令时出现以下错误消息:系统找不到指定的文件。
我尝试运行的命令如下:

对于/f%i在('dir /ad /on /b O:\ OrdersExport \ Order *。txt')中执行@type%i>> C:\ Users \ Admin \ Documents \ OrderImport.txt

如果我首先浏览到有问题的文件夹,则不会出现该错误:

客服:\>客服:
C:\>cd 订单导入

我只是想将一行从目标复制到该单个文件。

顺便说一句,如果重要的话,O: 是一个通过网络映射的文件夹

答案1

dir命令仅列出文件名。因此%i变量中填充了相对路径。如果命令不是从相关目录运行的,则使用将%~fi相对路径扩展为绝对路径。

for /f "tokens=*" %i in ('dir /a-d /o-n /b "O:\OrdersExport\Order*.txt"') do (
    @type "%~fi" >> "C:\Users\Admin\Documents\OrderImport.txt"
)
  • tokens=*处理文件名中的空格,因此%i总是整行输出dir

相关内容