path cmd working_directory的隐式转换规则 - rexdf/CommandTrayHost GitHub Wiki

只在2.2-b442之后版本有效

规则:

  1. 绝对路径保持不变
  2. path的补全规则:
    • path为空,且cmd为绝对路径,那么取cmd中的exe所在目录
    • 除此以外的相对值,都是相对于CommandTrayHost.exe所在目录
  3. working_directory的补全规则:
    • working_directory以>开头,那么它是相对于CommandTrayHost.exe所在目录
    • 否则它是相对于补全后的path的
  4. cmd只会相对于path

假设CommandTrayHost在D:\CTH\CommandTrayHost.exe

"" "C:\\a.exe" ""  --> "C:\\" "C:\\a.exe" "C:\\"
"" "C:\\a.exe" ">" --> "C:\\" "C:\\a.exe" "D:\\CTH\\"

"" "C:\\a.exe" "E:\\data"  --> "C:\\" "C:\\a.exe" "E:\\data"

"" "a.exe" ""  --> "D:\\CTH" "D:\\CTH\\a.exe" "D:\\CTH"

"F:\\" "a.exe" ""  --> "F:\\" "F:\\a.exe" "F:\\"
"F:\\" "a.exe" ">"  --> "F:\\" "F:\\a.exe" "D:\\CTH"

"F:\\" "a.exe" "a"  --> "F:\\" "F:\\a.exe" "F:\\a"
"F:\\" "a.exe" ".\\a"  --> "F:\\" "F:\\a.exe" "F:\\a"
"F:\\" "a.exe" "..\\a"  --> "F:\\" "F:\\a.exe" "F:\\a"
"F:\\" "a.exe" ">a"  --> "F:\\" "F:\\a.exe" "D:\\CTH\\a"
"F:\\" "a.exe" ">..\\a"  --> "F:\\" "F:\\a.exe" "D:\\a"

"F:\\" "C:\\a.exe" "a"  --> "F:\\" "C:\\a.exe" "F:\\a"
"F:\\" "C:\\a.exe" ">.\\a"  --> "F:\\" "C:\\a.exe" "D:\\CTH\\a"


"d1" "d2\\a.exe" "d3"  --> "D:\\CTH\\d1" "D:\\CTH\\d1\\d2\\a.exe" "D:\\CTH\\d1\\d3"