Batch file 当路径有空格时,执行exe时出现问题。
这项工作:Batch file 当路径有空格时,执行exe时出现问题。,batch-file,sqlcmd,Batch File,Sqlcmd,这项工作: SET server=MyServer SET db=MyDb FOR /F "usebackq tokens=1" %%i IN (`sqlcmd -S %server% -d %db% -w200 -h-1 -E -Q "set nocount on; select REPORTING_DATE FROM dbo.CURRENT_REPORTING_DATE"`) DO set REPORTING_DATE=%%i ECHO The Reporting Date is %R
SET server=MyServer
SET db=MyDb
FOR /F "usebackq tokens=1" %%i IN (`sqlcmd -S %server% -d %db% -w200 -h-1 -E -Q "set nocount on; select REPORTING_DATE FROM dbo.CURRENT_REPORTING_DATE"`) DO set REPORTING_DATE=%%i
ECHO The Reporting Date is %REPORTING_DATE%
但是当我尝试完全限定sqlcmd的路径时
SET sqlcmdexe="C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe" SET server=MyServer SET db=MyDb
FOR /F "usebackq tokens=1" %%i IN (` %sqlcmdexe% -S %server% -d %db%
-w200 -h-1 -E -Q "set nocount on; select REPORTING_DATE FROM dbo.CURRENT_REPORTING_DATE"`) DO set REPORTING_DATE=%%i ECHO The Reporting Date is %REPORTING_DATE%
我得到一个错误:
系统找不到指定的路径
…可能是因为文件夹名称中有空格
如何将路径更改为平铺路径(不带空格),或者更好的是,引用它以使该语句正确执行
请注意,在%sqlcmdexe%之前有一个向后的tic,我不知道为什么我看不到它,至少在IE6中是这样。是的,6 如何将路径更改为平铺路径(不带空格)
由于我没有安装sqlcmd.exe,所以使用了另一个示例。例如,请参见:
@echo off
set sqlcmdexe=C:\Program Files\Internet Explorer\Connection Wizard\icwconn2.exe
echo %sqlcmdexe%
for /f "tokens=*" %%a in ("%sqlcmdexe%") do set sqlcmdexe=%%~sa
echo %sqlcmdexe%
在我的系统上运行时,输出为:
C:\temp>envtest
C:\Program Files\Internet Explorer\Connection Wizard\icwconn2.exe
C:\PROGRA~1\INTERN~1\CONNEC~1\icwconn2.exe
但我不知道这是否解决了您的问题。您必须使用引号来处理字符串。。。但您从未使用过等号旁边的空格:
set "sqlcmdexe=c:\Program Files\Internet Explorer\Connection Wizard\icwconn2.exe"
echo.%sqlcmdexe%
希望它有帮助=)您可以使用
调用%sqlcmdexe%
可能重复的Yes您的调用技巧启发我检查潜在的问题