Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cmd在粘贴时将em破折号转换为连字符。有解决办法吗?_Cmd_Special Characters - Fatal编程技术网

cmd在粘贴时将em破折号转换为连字符。有解决办法吗?

cmd在粘贴时将em破折号转换为连字符。有解决办法吗?,cmd,special-characters,Cmd,Special Characters,我希望能够将文件路径粘贴到cmd中,其中包含em破折号(-,alt 0151) cmd将它们转换为em破折号已被连字符替换的破折号 手动输入: (键盘)D:\-\image.png (cmd)D:\-\image.png 输入此选项将按预期打开文件 粘贴的输入: (剪贴板)D:\-\image.png (cmd)D:\-\image.png 输入此项会给我一个错误,因为名为hyphen的目录不存在 这是令人困惑的,因为文件系统支持路径具有这样的字符-如果我手动键入路径,我可以访问此文件,

我希望能够将文件路径粘贴到cmd中,其中包含em破折号(-,alt 0151)

cmd将它们转换为em破折号已被连字符替换的破折号

手动输入:

  • (键盘)
    D:\-\image.png

  • (cmd)
    D:\-\image.png

  • 输入此选项将按预期打开文件

    粘贴的输入:

  • (剪贴板)
    D:\-\image.png

  • (cmd)
    D:\-\image.png

  • 输入此项会给我一个错误,因为名为hyphen的目录不存在

    这是令人困惑的,因为文件系统支持路径具有这样的字符-如果我手动键入路径,我可以访问此文件,并且程序可以很好地打开它

    为什么要转换受支持的字符?如果在添加转换时不支持它,为什么不在添加支持时删除转换

    更重要的是,如何在保持em破折号的同时解决此问题?我有依赖于这些路径的程序,在所有这些路径中更改它们会很不方便


    类似于:


    更改代码页没有任何区别。

    我的解决方法是创建一个自动热键脚本来解析粘贴的路径,并在遇到em破折号时发送alt 0151

    它可能会更快,但它可以工作——这比接收错误要好几英里

    #SingleInstance, force
    
    numpad7::
    tooltip, exited!
    Clipboard := stored
    sleep, 300
    exitapp
    
    #IfWinActive ahk_exe cmd.exe
    $^v::
    cliptext := clipboard
    stored := ClipboardAll
    StringGetPos, garbage, cliptext, —
    garbage =
    if !ErrorLevel {
      Loop, Parse, cliptext 
      {
          char = %A_LoopField%
          If (char == "—") {
            clipboard := sentence
            sendinput, ^v
            SendInput {alt down}{numpad0}{numpad1}{numpad5}{numpad1}{alt up}
            sentence := ""
          } else if (char == "") {
            char := " "
            gosub define_sentence
          } else {
            gosub define_sentence
          }
        }
        ; send sentence when EOL
        gosub define_sentence
        Clipboard := sentence := SubStr(sentence, 1, -1)
        sendinput, ^v
        sleep 200
        Clipboard := stored
        stored =
        sentence =
      return
    } else {
      sendinput, ^v
    } 
    return
    
    define_sentence:
      sentence := sentence . char
      tool := "s= " . sentence . "`n" . "c= " . char
      tooltip, %tool%
      return
    

    另一方面,autohotkey的highlight.js似乎不起作用,这很好。

    好吧,这样的字符似乎不完全受支持…
    cmd
    对UTF-8一无所知,例如,UTF-8是当今常用的文本编码;它以某种方式支持UTF-16,但它总是乱七八糟的代码页等等。这就是为什么我通常在文件路径/名称中避免使用此类字符,并坚持使用ASCII字符集…