Windows 传递包含连字符的命令行参数
我试图将命令行参数传递给控制台应用程序(计算机语言编译器) 我的问题:我传递的参数包含连字符,它导致了一个错误“-was unexpected command/character” 这是我正在使用的命令行参数(12d.exe是应用程序/编译器):Windows 传递包含连字符的命令行参数,windows,command-line,batch-file,Windows,Command Line,Batch File,我试图将命令行参数传递给控制台应用程序(计算机语言编译器) 我的问题:我传递的参数包含连字符,它导致了一个错误“-was unexpected command/character” 这是我正在使用的命令行参数(12d.exe是应用程序/编译器): 它似乎将“-”视为命令,而不是目录/字符串的一部分。也许我可以使用批处理文件来执行此命令行并重新格式化目录路径?你知道在HTTP POST中我是如何使用urlencode来格式化POST命令的,也许我可以在批处理文件中对命令行进行编码。似乎12d.ex
它似乎将“-”视为命令,而不是目录/字符串的一部分。也许我可以使用批处理文件来执行此命令行并重新格式化目录路径?你知道在HTTP POST中我是如何使用urlencode来格式化POST命令的,也许我可以在批处理文件中对命令行进行编码。似乎12d.exe不理解一些有效的文件名,12d.exe真丢脸 你可能会做一些动作
-
不在字符串的右侧,它可能会起作用。不过,在您的情况下不是这样,因为它可能会翻译为STAFF-~1
或类似的东西
call :invoke12d "Staff - Name\abc.4dm"
goto :eof
:invoke12d
12d %~s1
goto :eof
junction staffnam "Staff - Name"
12d.exe "staffnam/abc.4dm"
您可以尝试添加一个
^
来“转义”批中的连字符,使批忽略它
12d.exe "C:/Staff ^- Name/abc.4dm"
1.离题。2.这完全取决于12d.exe内部的内容,您无法从外部执行任何操作。@b您说得对,它取决于12d.exe。你说得不对,因为总有一些事情要从外部来做。你有没有试着在argv变量中打印字符串?那么您实际上是如何解析命令行的呢?
12d.exe "C:/Staff ^- Name/abc.4dm"