我需要创建一个批处理文件来为我所在的班级做一些事情。运行所需的一切都可以正常工作,但我找不到关于为什么更改目录 (CD) 对我不起作用的简单答案。我无法弄清楚所以任何帮助表示赞赏。
我的代码如下
@echo off
title NewUser
: creating a folder called "Scripts" on C:\
: add local user named: "MaxLocal" password: "student"
: create directory at the root of F:\ named "Files_for_Max"
: create ACE for user "MaxLocal" to "Files_for_Max" with: Read, read & Execute, List folder contents
: Re-establish inheritence to sub folders and files
: copies cmd.exe from C:\Windows\System32 folder to "Files_for_Max"
: add "MaxLocal" to management group created in Assignment 3
: produces ICACLS report for "Files_for_Max" called "icaclsReport.txt" in "Scripts"
: moves this .bat file to "Scripts"
mkdir "C:\Scripts"
net user MaxLocal student /add
mkdir "F:\Files_for_Max"
icacls "F:\Files_for_Max" /grant MaxLocal:(OI)(CI)RX
copy "C:\Windows\System32\cmd.exe" "F:\Files_for_Max"
net localgroup Management MaxLocal /add
icacls F:\Files_for_Max /save C:\Scripts\icaclsReport.txt /t
move "F:\NewUser.bat" "C:\Scripts"
pause
Run Code Online (Sandbox Code Playgroud)
所以特别是最后一行,MOVE 效果很好,但无论出于何种原因我都不允许使用它。我已经尝试了很多方法来使用 CD 来做这件事,但没有得出结论。我需要在 F 上获取这个 NewUser.bat 文件并将其移动到新创建的脚本文件夹中。是的,我尝试过 /D 命令,但也许我没有正确的间距或在不需要时使用引号?
有任何想法吗?
cd /d "C:\Scripts"
Run Code Online (Sandbox Code Playgroud)
这会将当前工作目录更改为 C:\Scripts。
如果您想移动批处理文件本身:
copy "%~f0" "C:\Scripts"
(goto) 2>nul & del "%~f0"
Run Code Online (Sandbox Code Playgroud)
这将自身 ( %~f0)复制到 C:\Scripts,然后删除自身,实际上是一个移动命令。
如果你愿意,你可以这样做:
copy "%~f0" "C:\Scripts"
start "C:\Scripts\~nx0"
(goto) 2>nul & del "%~f0"
Run Code Online (Sandbox Code Playgroud)
这也会启动复制的批处理文件,然后删除自身。