2017-02-28 148 views
2

我正在嘗試創建一個批處理腳本,該腳本創建一個名爲MigrateOldStickyNotes.bat的新批處理腳本,其中包含一些簡單的命令。將變量作爲批處理字符串處理

@echo SET CP=%~dp0> "%cp%\%ME%\%ME%\MigrateOldStickyNotes.bat" 
@echo SET ME=%Username%>> "%cp%\%ME%\%ME%\MigrateOldStickyNotes.bat" 

但不是創建一個新的批處理文件與這些看起來完全像這樣的行。

SET CP=%~dp0 
SET ME=%Username% 

它會創建一個新文件並將該變量用作輸入。這將導致我這些線。

SET CP=\\sosy-nas\Backup\ 
SET ME=itcebrha 

我該如何讓腳本將變量視爲字符串而不是把它當作變量來處理。

+6

用百分號轉義百分號,比如'SET CP = %%〜dp0' – jeb

+0

謝謝。簡單而簡單:) –

回答

1

用百分號跳出百分號,如SET CP=%%~dp0
所有其他(特殊)字符都會使用插入符號^進行轉義。

原因是百分號在批解析器的另一個階段中處理的比所有其他字符。
這也是爲什麼轉義百分號只能在批處理文件中工作,而不能在命令行上工作的原因,因爲cmd行解析器對百分號具有不同的擴展規則。

+0

也是一個很好的答案:) –