You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#插值与复杂命令中变量加引号方法及Robocopy空格文件名处理

解决C#插值语法中变量加引号与Robocopy空格问题

1. 给C#插值变量添加引号的正确方式

当需要给插值变量包裹引号以处理带空格的内容时,核心是正确转义双引号:

  • 如果使用逐字字符串(@前缀),双引号需要用两个连续的双引号""来转义,写法示例:
    $@"""要包裹的变量内容"""
    
    简单来说,外层的""会被解析成一个实际的双引号,把中间的变量完整包裹起来。
  • 如果不使用逐字字符串,用\"转义双引号即可,写法示例:
    $"\"要包裹的变量内容\""
    

2. 修改Robocopy命令以支持带空格的filename

你的原命令仅给目标路径加了引号,但filename变量如果包含空格,同样需要用引号包裹才能被命令行识别为完整参数。修改后的代码如下:

System.Diagnostics.Process.Start("robocopy.exe", $@"X: ""C:\users\username\desktop\test"" ""{filename}""").WaitForExit();

这里把{filename}用""{filename}""包裹——在逐字插值字符串里,""会被解析为单个双引号,这样不管filename有没有空格,都会被Robocopy当作一个完整的文件名参数处理。

举个实际例子,如果filename是"my document.txt",最终生成的命令参数会是:

X: "C:\users\username\desktop\test" "my document.txt"

这样就能完美处理带空格的文件名了。

内容的提问来源于stack exchange,提问作者dguth8

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:32:56