繼後How can I write a null ASCII character (nul) to a file with a Windows batch script?確實有方法用批處理腳本將ASCII NULL字符(nul)寫入文件。如何使用Windows批處理腳本在變量中存儲空ASCII字符(nul)?
但是,我找不到將NULL字符存儲到變量的方法。
假設該文件null.nil
包含了一個NULL字符,它重定向到set /P
似乎不工作時,變量顯示爲空:
< "null.nil" set /P NULL=
set NULL
for /F
似乎並沒有工作,要麼因爲它似乎駁回每NULL字符它遇到。依託同一個文件null.nil
,在一個空變量的結果如下:
for /F %%S in ('type "null.nil"') do set NULL=%%S
set NULL
改變set
語法set "NULL=%%S"
或set NULL=^%%S
並不能改變什麼,但在命令行type "null.nil"
也呼應NULL字符(在我的Windows 10 x64機器;將type
輸出重定向到一個文件並使用十六進制編輯器查看它)。
那麼如何設置一個變量爲單個NULL字符呢? NULL字符可以從文件中獲取(如null.nil
),也可以由某些智能黑客生成,但我不希望它直接嵌入到批處理文件中。
只是一個猜測...我會懷疑內部env。變量被處理爲以空字符結尾的字符串,並且由於只包含空字符的字符串是空的(沒有任何內容),並設置env。 var to nothing清除它,你會在這裏遇到問題。 :-) –
不幸的是,你是對的,@KenWhite;我剛剛在這裏找到一個帖子,證實您的合理懷疑:[爲特定進程的特定運行設置環境變量](http://stackoverflow.com/a/13092538) – aschipfl
如果您以某種方式設法將變量設置爲單個NULL字符'你如何預測你可以使用*這個變量? – dxiv