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