1
當經由CMD查詢下面批次變量打印註冊表CSV
REG QUERY "HKCU\Printers\Connections"
的輸出是:
HKEY_CURRENT_USER\Printers\Connections\,,xxx-SD-KDP11,Colour
HKEY_CURRENT_USER\Printers\Connections\,,xxx-SD-KDP11,Mono
然而運行包含代碼的批處理文件時,下面
@echo OFF
setlocal enableextensions enabledelayedexpansion
echo ============================
echo Network Printers ...
if exist network_printers.txt del network_printers.txt
if exist network_printers2.txt del network_printers2.txt
set reg_keys=
set blank=
set printers_network_paths=
set printers_network_types=
REG QUERY "HKCU\Printers\Connections" > network_printers.txt
for /f "tokens=* delims=" %%A in ('type network_printers.txt') do set network_printers_init=!network_printers_init! %%A
echo !network_printers_init! > network_printers2.txt
echo !network_printers_init!
pause
for /f "usebackq tokens=1,* delims=, skip=4" %%a in ('network_printers2.txt') do (
set reg_keys = !reg_keys! %%a
)
for /f "tokens=2,* delims=, skip=4" %%a in ('type network_printers2.txt') do (
set blank = !blank! %%b
)
for /f "tokens=3,* delims=, skip=4" %%a in ('type network_printers2.txt') do (
set printers_network_names = !printers_network_names! %%c
)
for /f "tokens=4,* delims=, skip=4" %%a in ('type network_printers2.txt') do (
set printers_network_types = !printers_network_types! %%d
)
echo reg_keys: !reg_keys!
echo blank: !blank!
echo Network Printers paths: !printers_network_names!
echo Network Printers types: !printers_network_types!
echo Network Printers paths: !printers_network_names! >> %file%
echo Network Printers types: !printers_network_types! >> %file%
pause
的生成的.csv文件對於!printers_network_names沒有任何作用!和!printers_network_types! 另外echo
行顯示最後4個變量中沒有任何內容存儲。
請指教?
謝謝。就像你提到的那樣,我太過複雜了。是的,我確實認爲'skip'選項是用於跳過標記而不是線條,後者是正確的。 – 2014-12-08 09:40:33
另外,我將如何規定值之間的所有空格 - 例如'xxx-SD-KDP11 xxx-SD-KDP11'中有空格。你將如何去除'for'循環中的空間並用單個'''替換? – 2014-12-08 09:57:35