2016-11-03 71 views
0

我需要创建一个批处理文件来为我所在的类做一些事情。运行所需的一切工作,但我找不到一个简单的答案,为什么改变目录( 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来完成任务。我需要将这个NewUser.bat文件放在F上,并将它移动到新创建的脚本文件夹中。是的,我已经尝试了/ D命令,但也许我没有正确的间距或不需要时使用引号?

任何想法?

+1

我在代码中看不到任何'CD'命令。 – JosefZ

+0

@JosefZ:我可以证实你并不是盲目的。 – Magoo

+0

等一下,这是'NewUser.bat',还是这个另一个脚本? –

回答

1
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" 

其中也开始复制的批处理文件,然后删除自身。

+0

感谢您的帮助。这不正是我需要做的,无论出于何种原因,cd/d“C:\ Scripts”都不起作用。但是,你的其他结论呢。这是非常赞赏。 – Shafty

+0

然后考虑接受它作为正确的答案。它表明它解决了你的问题,而其他人可以在需要帮助时查看它。 –

+0

噢,这完全是一个正确的回应,并且此举也可能与许多其他方式一起实现所需的解决方案。我的问题是,我的任务指出,对于这个特定的问题,我不得不使用CD,无论出于何种原因,我都无法运行它。 – Shafty

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 

应该是它可以工作的方式。因此,首先你要求它移动指定文件,就像我在复制命令中所做的一样。

相关问题