如何在变量批处理脚本中处理空间

问题描述 投票:0回答:2

我有批处理文件,提示用户提供文件名。文件可以有空,也可以不有空间。如果我的文件名中有空格,我的批处理失败。例如:

SET TDSX=.txt    
SET /p DS=%1    
move C:\Working\YAHAMA\DEV\Script\%DS%%TDSX% C:\Working\YAHAMA\NEW_FO
batch-file
2个回答
1
投票

像这样在变量赋值周围加上引号:

set /p "DS=%~1"

波浪形的~事物删除了参数的任何引用。以上假设命令行上的文件名有引号,否则,就cmd而言,它不是单个参数,您可能需要:

set /p "DS=%*"

1
投票

您还需要使用双引号来保护结果文件和目录名称中的空格:

@Echo Off
CD /D "C:\Working\YAHAMA" 2>Nul || Exit /B
Set "TDSX=.txt"
Set /P "DS=%~1"
If Exist "DEV\Script\%DS%%TDSX%" (
    If Not Exist "NEW_FO\" MD "NEW_FO"
    Move "DEV\Script\%DS%%TDSX%" "NEW_FO"
)
© www.soinside.com 2019 - 2024. All rights reserved.