Batch file 我无法使用windows7访问批处理文件中的特定文件夹,但在Xp中可以。在XP中,我使用了cd<;路径>;到那个特定的目录
我有一个批处理脚本,它在WindowsXP中运行得非常好,但在Windows7中却没有。我可以从另一个文件夹中创建和复制内容,但无法重命名新文件夹中的文件 cd不工作(指向新文件夹的路径),实际上我们没有到达新文件夹来重命名文件 这就是我尝试过的 ::自定义命令提示符Batch file 我无法使用windows7访问批处理文件中的特定文件夹,但在Xp中可以。在XP中,我使用了cd<;路径>;到那个特定的目录,batch-file,windows-7,cd,Batch File,Windows 7,Cd,我有一个批处理脚本,它在WindowsXP中运行得非常好,但在Windows7中却没有。我可以从另一个文件夹中创建和复制内容,但无法重命名新文件夹中的文件 cd不工作(指向新文件夹的路径),实际上我们没有到达新文件夹来重命名文件 这就是我尝试过的 ::自定义命令提示符 @echo off ::开始 :createFolder set /p folderName= New Folder Name...: if exist %
@echo off
::开始
:createFolder
set /p folderName= New Folder Name...:
if exist %folderName% goto :error else :yes
::输入源文件夹路径
set /p fName=Which folder contents are to be copied to the new folder:
set /p path= Location of new folder..:
cd /d %path%
::输入目标文件夹路径
set /p fName=Which folder contents are to be copied to the new folder:
set /p path= Location of new folder..:
cd /d %path%
::创建文件并将其复制到新文件夹
光盘\
md%path%\%folderName%
%systemroot%\System32\xcopy "%fName%" "%path%\%folderName%" /e/h/k/s
cd %path%\%folderName%
::正在运行批处理重命名
set /p pathName=Enter The new pattern:
set "number= %pathName%"
set "number=%number:~-8%"
for %%f in (*.xlsx) do (
set "file=%%f"
CALL :renameToNumber
)
:renameToNumber
ren "%file%" %file:~0,-13%%number%.xlsx
:yes
echo The folder %folderName% created successfully!
goto :1
exit
:error
echo The folder %folderName% already exist!
goto :createFolder
exit
CD是否在windows7中工作??如果没有,,
如何到达特定目录??
是否需要其他许可 通过将所有好的评论放在一起,只要用户拥有访问文件夹和创建新文件夹所需的权限,下面的批处理文件就可以工作
@echo off
::start
:createFolder
set /p folderName= New Folder Name...:
if exist "%folderName%" goto :error else :yes
:: enter source folder path
set /p fName=Which folder contents are to be copied to the new folder:
:: enter destination folder path
set /p newFolder= Location of new folder..:
cd /d "%newFolder%"
:: creating and copying files to new folder cd\ md %path%\%folderName%
%systemroot%\system32\xcopy.exe "%fName%" "%newFolder%\%folderName%" /e/h/k/s
cd /d "%newFolder%\%folderName%"
:: Running Batch Rename
set /p pathName=Enter The new pattern:
set "number= %pathName%"
set "number=%number:~-8%"
for %%f in (*.xlsx) do (
set "file=%%f"
CALL :renameToNumber
)
:renameToNumber
ren "%file%" "%file:~0,-13%%number%.xlsx"
:yes
echo The folder %folderName% created successfully!
goto :1
exit
:error
echo The folder %folderName% already exist!
goto :createFolder
exit
您不应该在批处理文件中使用
%path%
作为局部变量。Windows/DOS使用它来设置运行没有完全限定路径的程序时要搜索的文件夹。打开一个新的CMD窗口,键入set path
以了解我的意思。此外,Windows Vista及更高版本对权限的使用更严格:除非进程在提升模式下运行,否则管理员用户不会获得完全权限。这可能会导致软件出现问题而没有考虑到这一点。另外,尝试使用pushD而不是CD,因为它可以跨驱动器工作。例如,如果提示当前位于不同的驱动器号上,CD C:\test\将不起作用。@bill如果使用/d
参数,您可以制作CD
,也可以更改驱动器,例如:CD/d:\temp