【发布时间】:2021-08-21 21:19:52
【问题描述】:
我有一个很长的脚本,其中包含我们捐赠给 United Way 的笔记本电脑的许多不同信息,并且由于我必须以管理员身份运行命令。
但是当我将 set drive=%cd:~0,3% 设置为 C:\Windows\System32 而不是我正在运行的闪存驱动器时。
有人知道如何获取所需的正确信息吗?
我在这里和谷歌上看过,没有什么真正符合这个问题的。
set drive=%cd:~0,3%
这是更多代码,因此您可以看到我要做什么。
set drive=%cd:~0,3%
for /F "skip=2 tokens=2 delims=," %%A in ('wmic systemenclosure get serialnumber /FORMAT:csv') do (set "serial=%%A") mkdir %cd%\Computers\%Serial%\
【问题讨论】:
-
在使用
set drive=%cd:~0,3%之前,您是否包含CD /D "%~dp0"以确保批处理实际上是从闪存驱动器执行的?注意/D开关 - 从一个驱动器更改为另一个驱动器时需要它。 -
当然你可以使用
%~d0,它已经是一个变量,保存着正在运行的批处理文件的盘符。如果您想将其保存为名为@987654329@ 的变量,请使用Set "drive=%~d0"。 -
我都试过了,当我右键单击并以管理员身份运行时,它仍然回显 C:\Windows\System32.......
-
您得到的建议并未回显
\System32目录的完整路径,因为这两个cmets 中的任何一个都不会使用%cd%。因此,请准确发布问题批处理文件中包含的内容,确保echo不是off,从命令提示符窗口运行它,使用“以管理员身份运行”选项打开,并发布完整的输出。 -
如果我右键单击批处理文件并选择以管理员身份运行,它会更改为 \system32。我猜是因为我在唤起管理员和它的开放方式........
标签: batch-file variables command-line