Windows 在写入文本文件时,echo命令是否附加任何额外字符?

Windows 在写入文本文件时,echo命令是否附加任何额外字符?,windows,batch-file,cmd,Windows,Batch File,Cmd,我正在尝试使用批处理文件创建快捷方式。我模仿以下手动步骤来实现这一点,但尽管手动创建的文件可以作为快捷方式正常工作,但由“批处理文件”命令行命令创建的快捷方式不起作用- 手动创建快捷方式: 创建一个文本文件 将以下内容添加到文本文件并保存: [InternetShortcut] URL=file:///D:\Logs 将文本文件重命名为具有.url扩展名 该进程将创建到D:\Logs目录的快捷方式 现在,我使用批处理文件创建快捷方式- ( ECHO [InternetShortcut] EC

我正在尝试使用批处理文件创建快捷方式。我模仿以下手动步骤来实现这一点,但尽管手动创建的文件可以作为快捷方式正常工作,但由“批处理文件”命令行命令创建的快捷方式不起作用-

手动创建快捷方式:

  • 创建一个文本文件
  • 将以下内容添加到文本文件并保存:

    [InternetShortcut]
    URL=file:///D:\Logs
    
  • 将文本文件重命名为具有.url扩展名
  • 该进程将创建到D:\Logs目录的快捷方式

    现在,我使用批处理文件创建快捷方式-

    (
    ECHO [InternetShortcut]
    ECHO URL=file:///D:\Logs
    ) > E:\myshortcut.url
    
    但这条捷径行不通。我检查了内容,它们看起来与我在手动创建的文件中的内容一模一样

    那么,手动创建的文件和批处理文件创建的文件之间有什么区别呢?

    这对我很有用:

    echo [InternetShortcut]> E:\myshortcut.url
    echo URL=file:///D:\Logs>> E:\myshortcut.url
    

    请注意,您必须在重定向
    >
    之前不要有一个空格,因为这将被回显到文件中。

    回显
    将在每行末尾添加一个CR+LF序列。@Phylogenesis在写入文件时如何转义这些空格?复制您的批处理文件(Windows 7)... 这正是您正在使用的批处理文件,还是您有
    %variables%
    等。?如果是这样,请按您正在使用的脚本进行编辑。@TripeHound我首先尝试使用变量将位置作为参数,但随后我尝试使用硬编码位置,与上面的代码片段完全相同(并按照其中一个建议删除角括号前的空格,分别进行回音,同时写入第一个回音并附加第二个回音),不幸的是,没有一个起作用。从cmd创建的文件根本不起作用,即使我将其创建为.txt,然后检查内容并将其重命名为.url。我在Windows10上。