从filename中读取特殊字符到变量

时间:2017-02-24 09:14:24

标签: windows batch-file special-characters

我有数千个文件,其文件名包含“插入符号”符号,但是当我尝试将它们分配给变量时,我得到了奇怪的结果。例如,如果文件名为delete from mytable where exists ( select * from mytable newer where newer.ipaddress = mytable.ipaddress and newer.date > mytable.date ); ,则命令"01 ^ Driver's Seat.flac,"将返回带有额外插入符号的echo %1,并且处理暂停。如何获得正确的输出?

1 个答案:

答案 0 :(得分:2)

插入符号加倍是delegate命令的问题(请参阅:How the batch parser works)。

通过使用带引号的变量调用函数而不是按值调用变量,可以避免这种情况。

  

call:func"%variableName%" - 按价值
  call:func variableName - by reference

CALL