0

我编写了一个通过命令提示符运行的文件批处理(见下文),如下所示:

file K

结果是

"D:\android-sd*\android-sd*-windows\*\wor*space"

相反,我需要得到

"D:\android-sdk\android-sdk-windows\*\workspace"

否则我需要用“*”替换“android-sdk-windows”和“workspace”之间的“K”。请问如何修复批次以获得此结果?

file.bat

@echo off
setlocal enabledelayedexpansion
set mypath="D:\android-sdk\android-sdk-windows\K\workspace"
SET mypath=!mypath:%~1=*!
echo !mypath!

先感谢您

4

2 回答 2

2
@echo off
setlocal enabledelayedexpansion
set mypath="D:\android-sdk\android-sdk-windows\K\workspace"
SET mypath=!mypath:\%~1\=\*\!
echo !mypath!
于 2013-06-09T22:35:08.473 回答
1

第一种解决方案:更改批处理代码并调用file #

@echo off &setlocal enabledelayedexpansion
set mypath="D:\android-sdk\android-sdk-windows\#\workspace"
SET "mypath=!mypath:%~1=*!"
echo %mypath%
"D:\android-sdk\android-sdk-windows\*\workspace"

第二种解决方案:使用sed

@echo off &setlocal
set "mypath=D:\android-sdk\android-sdk-windows\K\workspace"
for /f %%i in ('echo(%mypath%^|sed s/%~1/*/') do set "mypath=%%i"
echo %mypath%
"D:\android-sdk\android-sdk-windows\*\workspace"
于 2013-06-09T22:25:41.373 回答