【问题标题】:How to open a file using a string variable in path name in batch file如何使用批处理文件中路径名中的字符串变量打开文件
【发布时间】:2013-07-11 19:59:46
【问题描述】:

我有一个文本文件,在C:\path.txt 中调用它为path.txt,它一次只有一行文本。那行文本将是一个文件路径,称为C:\projects\test.txt

首先从C:\path.txt 读取文本然后在批处理文件中使用排序命令对其路径由path.txt 中的文本字符串定义的文件按字母顺序排列的最佳方法是什么?

最后,我想从 C:\path.txt 文件中删除该行文本。

如果这太含糊或需要更好的解释,请告诉我,并提前致谢。

我现在读取的批处理文件:

FOR /F "tokens=*" %%i IN (C:\DONOTMODIFY.txt) DO @ECHO %%i

set "filename=%%i"

SORT filename /O filename

【问题讨论】:

    标签: file sorting text batch-file path


    【解决方案1】:

    为什么人为限制只有一行?无论如何,是的,这很简单。无论如何,这将处理 target.txt 中的任意数量的行。在真正使用之前先测试一下。

    @echo off
    for /f %%i in (target.txt) do (
        sort %%i /o %%i
    )
    echo. > target.txt
    

    编辑

    您可以使用copy /y nul target.txt > nul 而不是echo. > target.txt,它实际上创建了一个与echo 不同的完全空的文件。这会产生一个空行。

    PS:未来问题的提示:表明您确实尝试过某事。这不是一个为你做我的程序的网站。

    【讨论】:

    • 谢谢,这是我需要的关键,谢谢你的提示,我也应该发布我的批处理文件的内容。至于一行限制,它使此设计流程中的前一步更简单,并且只有一行我认为 for 循环可能不是必需的。最初我有: FOR /F "tokens=*" %%i IN (C:\DONOTMODIFY.txt) DO @ECHO %%i set "filename=%%i" sort filename /o filename
    • 是的,但是批量读取文件基本上是 for /f 的工作。您可以这样做,但 for 更好: set /p test= 后跟 sort %test% /o %test% 但是 for 循环具有能够处理许多项目或从文件中取出一行并将其余部分留待以后处理的优势。所以人为限制一条线是多余的。它仍然可以一次处理一行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多