batch-file - 批处理脚本 - 带空格的变量字符串

标签 batch-file

如果我做:

set dir1= %ProgramFiles%\Backup\files
set dir2= %ProgramFiles%\Backup\settings
set backup = B:\backup
start /b combine_file.exe %dir1% %dir2%

上面的例子只看到第一部分,即 C:\program并且还不包括空间。

如果我这样做 echo %dir1% ,它将返回正确的路径。你会把 "" 放在哪里解决这个问题?

同样的问题发生,当你做一些类似的事情时:
set /p somepath=Enter Path
start /b combine_file.exe %dir1%\%somepath%

由于那个空间,你会得到一个错误,但是当试图放置 "" 时因此,您经常会遇到另一种类型的错误。在测试中,我知道该示例确实有效,就像您选择一个没有空格的目录或手动放入 "" 一样在 set /p blah=这工作正常。

很确定我只是缺少一个简单的开关或诸如 /I 之类的东西.

最佳答案

set "dir1=%ProgramFiles%\Backup\files"
set "dir2=%ProgramFiles%\Backup\settings"
set "backup=B:\backup"

start /b combine_file.exe "%dir1%" "%dir2%"

set /p "somepath=Enter Path"
start /b combine_file.exe "%dir1%\%somepath%"

通常,在变量分配上使用引号以确保正确处理空格,但不要在值中包含引号。因此,变量中的所有路径都不包含引号。当需要使用该值时,请引用该变量。

关于batch-file - 批处理脚本 - 带空格的变量字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21456676/

相关文章:

java - 尝试重命名计算机或在 Java 中执行 .bat 文件

windows - Powershell:导出用户权限分配

windows - =y此时出乎意料

batch-file - 在 Windows 批处理文件中,如何使用十进制数的十六进制表示设置环境变量?

batch-file - 任务计划程序找不到文件

windows - 从 Cygwin 批量获取命令结果

windows - 如果批处理文件中的条件

batch-file - windows批量杀死一个进程

java - 通过批处理文件使用main方法执行独立项目

batch-file - 如何在安装过程中运行 ".bat"文件?