批处理文件中的更改目录命令不起作用

Sha*_*fty 5 cmd batch-file

我需要创建一个批处理文件来为我所在的班级做一些事情。运行所需的一切都可以正常工作,但我找不到关于为什么更改目录 (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 命令,但也许我没有正确的间距或在不需要时使用引号?

有任何想法吗?

end*_*the 7

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)

这也会启动复制的批处理文件,然后删除自身。