Batch file 我无法使用windows7访问批处理文件中的特定文件夹,但在Xp中可以。在XP中,我使用了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 %

我有一个批处理脚本,它在WindowsXP中运行得非常好,但在Windows7中却没有。我可以从另一个文件夹中创建和复制内容,但无法重命名新文件夹中的文件

cd不工作(指向新文件夹的路径),实际上我们没有到达新文件夹来重命名文件

这就是我尝试过的

::自定义命令提示符

         @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