Batch file 如何处理变量批处理脚本中的空间

Batch file 如何处理变量批处理脚本中的空间,batch-file,Batch File,我有一个批处理文件,它提示用户提供文件名。文件可以有或不能有空间。如果文件名中有空格,则批处理失败。例如: SET TDSX=.txt SET /p DS=%1 move C:\Working\YAHAMA\DEV\Script\%DS%%TDSX% C:\Working\YAHAMA\NEW_FO 在变量赋值周围加引号,如下所示: set /p "DS=%~1" 蠕动的~东西从参数中删除任何引号。以上假设命令行上的文件名周围有引号,否则,就cmd而言,它不是一个单独的参数,

我有一个批处理文件,它提示用户提供文件名。文件可以有或不能有空间。如果文件名中有空格,则批处理失败。例如:

SET TDSX=.txt    
SET /p DS=%1    
move C:\Working\YAHAMA\DEV\Script\%DS%%TDSX% C:\Working\YAHAMA\NEW_FO

在变量赋值周围加引号,如下所示:

set /p "DS=%~1"
蠕动的
~
东西从参数中删除任何引号。以上假设命令行上的文件名周围有引号,否则,就cmd而言,它不是一个单独的参数,您可能需要:

set /p "DS=%*"

在变量赋值周围加引号,如下所示:

set /p "DS=%~1"
蠕动的
~
东西从参数中删除任何引号。以上假设命令行上的文件名周围有引号,否则,就cmd而言,它不是一个单独的参数,您可能需要:

set /p "DS=%*"

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

@Echo关闭
CD/D“C:\Working\YAHAMA”2>Nul | | Exit/B
设置“TDSX=.txt”
设置/P“DS=%~1”
如果存在“DEV\Script\%DS%%TDSX%”(
如果不存在“新信息”MD“新信息”
移动“DEV\Script\%DS%%TDSX%”“新建”
)

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

@Echo关闭
CD/D“C:\Working\YAHAMA”2>Nul | | Exit/B
设置“TDSX=.txt”
设置/P“DS=%~1”
如果存在“DEV\Script\%DS%%TDSX%”(
如果不存在“新信息”MD“新信息”
移动“DEV\Script\%DS%%TDSX%”“新建”
)

拿起钥匙,阅读并确认。使用代码块进行编码。取、读和。使用代码块编写代码。嘿,我刚才试过你说的方法,但它不喜欢设置TDSX=.txt SET/p“DS=%1”move C:\Working\DEV\Script\%DS%%TDSX%C:\Working\NEW_FO@SaketKrishna包含空格的每个参数必须用引号括起来
move“C:\Working\DEV\Script\%DS%%TDSX%”C:\Working\NEW\u FO
嘿,我刚试过你说的方法,但它不喜欢设置TDSX=.txt SET/p“DS=%1”移动C:\Working\DEV\Script\%DS%%TDSX%C:\Working\NEW_FO@SaketKrishna包含空格的每个参数必须用引号括起来
move“C:\Working\DEV\Script\%DS%%TDSX%”C:\Working\NEW\u FO