运行这个batch file @echo off set a=some value with (parentheses) inside if 1 == 1 ( set PATH=%a% ) inside was unexpected at this time. 错误。 如何逃避avariables,以避免这个错误?
我已经阅读了许多不同的方法来获得Windowsbatch fileparsing器正确处理variables有空格,括号和其他特殊字符,但没有任何build议似乎能够解决我所遇到的问题。 这里是脚本(在尝试任何解决方法之前),其目标是根据variables01和variables02的值设置variables03的值: set variable01="C:\Program Files (x86)\SomeProgram\Subfolder" set variable02="${macro}" set variable01=%variable01:"=% set variable02=%variable02:"=% set variable03="" if %variable02:~0,1%==$ ( if %variable01:~0,1%==$ ( set variable03=%variable03:"=% ) else ( set variable03=-o '%variable01%' ) ) …variables01和variables02的值是事先不知道的 – 在运行脚本之前被另一个程序replace,所以上面的脚本显示了在replace完成之后variables01和variables02的一组值。 这个脚本运行时得到的错误是: \SomeProgram\Subfolder' was unexpected at this time. …对应于上述脚本中的最后一个“设置”行。 我认为这个错误是由于variable01的括号中的。 如果我改变这一行: set "variable03=-o '%variable01%'" …然后我得到这个错误: Files was unexpected at this time. …似乎表明它试图在variables01中的空格上进行标记,而parsing器仍然不快乐。 […]
这个for循环(简化的例子); @echo off for %%a in (help -help –help /help ? /?) do ( echo %%a ) 扼stream圈上的2个元素用'?' 字符。 它输出 C:\Temp>test.bat help -help –help /help C:\Temp> 所以当它碰到第一个“?”时就会退出循环。 这组合适的转义序列是什么? 尝试了一堆东西,双引号,插入符号,反斜杠等,但似乎没有工作。
我想用grepsearch一个看起来像这样的string: something ~* 'bla' 我试过这个,但是shell删除了单引号argh .. grep -i '"something ~* '[:alnum:]'"' /var/log/syslog 什么才是正确的search?
我无法使用名称和参数中的空格进行系统调用。 例如: system("c:\\program files\\something\\example.exe c:\\my files\\example.txt"); 我已经尝试过以任何我知道的方式逃避,没有任何作品。 我努力了: system("\"c:\\program files\\something\\example.exe\" \"c:\\my files\\example.txt\""); 和 system("c:\\program^ files\\something\\example.exe c:\\my^ files\\example.txt"); 既没有工作。 我仍然得到'C:\程序'不是一个recongnised内部或外部命令 这真的让我疯狂…我需要调用并传递参数,其中有空格。 我不能使用简短的符号,因为我不会进入。 我用“引号”而不是“引号”进行了尝试,但仍然不起作用。我尝试过在整个事件中引用引号,并且引用了这些空格,并且不起作用。 有谁知道如何正确地做到这一点?
我需要从Windows 7的命令行运行以下命令: SumatraPDF.exe -inverse-search "\"C:\Program Files\eclipse\inverse_search.bat\" \"%f\" %l" 不过,我需要修改一下,因为我的Eclipse安装位于这里: C:\Program Files (x86)\Eclipse (C++) 我如何正确地逃避这条线? 我是否需要避免括号和加号呢? 还是仅仅是为了摆脱双引号?
我的第一篇文章,大多数问题已经解决了这个友好提供知识在这里。 但是现在我用完了一个关于在cmd.exe中处理有毒字符的问题。 假设在双引号中包含给定的stringvariables。 大部分毒物字符已经被普通字符replace,左边的字符是“&”,“(”,“)”和“%”。 之后,该string必须回显到不带引号的文件中。 所以我有这个想法逃避毒药人物的三倍: @echo off & setlocal ENABLEEXTENSIONS SET AlbumArtist=%1 CALL :EscapePoisonChars %AlbumArtist% AlbumArtist_VDN SET "FlacHyperLink==hyperlink^("file://%AlbumArtist_VDN%"^;"LossLess"^)") echo %FlacHyperLink% echo %AlbumArtist_VDN% endlocal &GOTO:EOF :EscapePoisonChars @echo off & setlocal ENABLEEXTENSIONS SET TmpString=%1 SET TmpString=%TmpString:&=^^^&% SET TmpString=%TmpString:(=^^^(% SET TmpString=%TmpString:)=^^^)% endlocal&SET %2=%TmpString:~1,-1%&GOTO :EOF 当我打电话给我的脚本上面,我得到了预期的输出 – 除了缺less的百分号: G:\YAET\20130204_Work>TryAmper.bat "100% Rock & Roll (7' UpMix)" =hyperlink("file://100 Rock & […]