我需要创建一个批处理文件来为我所在的课程做一些事情。所有需要运行的工作但是我找不到一个简单的答案,为什么更改目录(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
所以它的最后一行特别是,MOVE效果很好,但我不允许出于任何原因使用它。我已经尝试了很多方法来解决如何使用CD而无法得出结论。我需要在F上获取此NewUser.bat文件并将其移动到新创建的脚本文件夹。是的我已经尝试了/ D命令,但也许我没有正确的间距或在不需要时使用引号?
有什么想法吗?
答案 0 :(得分:3)
cd /d "C:\Scripts"
这会将当前工作目录更改为C:\ Scripts 如果您想改为移动批处理文件:
copy "%~f0" "C:\Scripts"
(goto) 2>nul & del "%~f0"
将自身(%~f0
)复制到C:\ Scripts中,然后删除自身,实际上是移动命令。
如果你想要你可以这样做:
copy "%~f0" "C:\Scripts"
start "C:\Scripts\~nx0"
(goto) 2>nul & del "%~f0"
这也会启动复制的批处理文件,然后删除自己。
答案 1 :(得分:0)
您可以在复制命令之前使用cd,这可能与您在移动命令之前需要使用它的方式相对应。
cd C:\Windows\system32
copy cmd.exe F:\Files_for_Max
批处理文件询问“复制什么位置”,因此我们有复制副本,cmd.exe用于什么,F:\ Files_for_Max用于哪里。
类似地,
cd F:\
move NewUser.bat C:\Scripts
应该是它的工作方式。所以首先你要求它移动指定文件之前进入目录F:\,就像我在复制命令中所做的那样。