You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

含空格变量的NET SHARE命令无法执行,求技术支持

解决批处理删除带空格非管理员共享的问题

问题根源在于WMIC的输出是UTF-16 LE编码,包含隐藏的空字符,导致FOR /F捕获的变量%%j带有不可见的尾部空字符——这会让带空格的共享名无法被NET SHARE正确识别,甚至echo输出时出现异常。

修正后的代码

直接替换原有逻辑即可解决问题,代码如下:

FOR /F "USEBACKQ SKIP=1 DELIMS=" %%j IN (`wmic /node:192.168.0.101 SHARE WHERE "Name like '%%[^$]'" GET NAME ^| more ^| findstr /r /v "^$"`) DO NET SHARE "%%j" /DELETE

关键修改说明

  • 添加| more:将WMIC的UTF-16输出转换为ANSI编码,彻底去除隐藏的空字符,这是解决变量异常的核心步骤。
  • 替换TOKENS=*为DELIMS=:确保捕获完整的共享名(包括空格),TOKENS=*会忽略开头空格,而DELIMS=会保留整个字符串的原始格式。
  • 保留SKIP=1跳过WMIC的表头行,findstr /r /v "^$"过滤空行。

测试验证代码

用以下代码验证变量捕获是否正常:

FOR /F "USEBACKQ SKIP=1 DELIMS=" %%j IN (`wmic /node:192.168.0.101 SHARE WHERE "Name like '%%[^$]'" GET NAME ^| more ^| findstr /r /v "^$"`) DO @ECHO "%%j"

执行后将正确输出带引号的完整共享名,不会出现仅显示引号的异常情况。

内容的提问来源于stack exchange,提问作者Enqueue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 05:03:11