如何制作一个批处理文件来在启动程序时重命名文件夹? - 假设我想启动我的 word.exe,同时我需要重命名一个文件夹,c:\users\my profile\my word documents
当my documents
我存在时,word.exe
批处理会将该文件夹重命名为其原始名称。
--稍后编辑--
这是我需要做的
- 启动程序
- 等待程序完全加载
- 重命名文件夹
- 该程序会一直等待,直到我关闭它
- 当我要关闭程序时,它不能关闭(等待)直到批量重命名文件夹
- 关闭程序
答案1
只需使用称呼语句告诉批处理脚本在程序打开时等待:
@ECHO OFF
RENAME "C:\users\my profile\my word documents" "my documents"
CALL "C:\Program Files\Microsoft Office\Office15\winword.exe"
RENAME "C:\users\my profile\my documents" "my word documents"
只是不要自己关闭批处理窗口,否则文件夹之后将不会重命名。您可以使用快捷方式最小化运行脚本或使用 VBS 运行它,以最大限度地减少发生这种情况的可能性隐。
更新
我认为这应该可以完成您要求的(几乎)相同的任务,而且不会带来太多麻烦。只需保留中间副本,您就应该能够实现您真正想要的(我们仍然在猜测)。
@ECHO OFF
SET source=C:\test
SET dest=C:\test_tmp
MKDIR "%dest%"
COPY /Y "%source%\*.*" "%dest%\"
CALL "C:\Program Files\Microsoft Office\Office15\winword.exe"
RMDIR /S /Q "%source%"
MKDIR "%source%"
COPY /Y "%dest%\*.*" "%source%\"
RMDIR /S /Q "%dest%"
如果这对你来说还不够好,那么你最好的选择是VBA 脚本或者。网 应用程序级插件部分原因是因为这实际上不能单独通过 BATCH 来完成。
答案2
参见下文,您需要更改 4 个变量以满足您的需求。将此代码(经过适当修改)保存为批处理文件(扩展名为 .bat),然后从命令行(或从运行/开始)运行它。
@ECHO OFF
SETLOCAL
REM location is the directory below the one you want to rename
SET location=%USERPROFILE%\Documents
SET mydir_pre=testdir1
SET mydir_post=testdir2
SET myprogram=C:\windows\system32\notepad.exe
RENAME "%location%\%mydir_pre%" "%mydir_post%" 2>NUL||ECHO Oops - failed to rename "%location%\%mydir_pre%"&&GOTO :eof
REM start the program, while you are using this instance you will see testdir2
START "My Program" /WAIT "%myprogram%"||ECHO Unable to start %myprogram%&&GOTO :eof
RENAME "%location%\%mydir_post%" "%mydir_pre%" 2>NUL||ECHO Oops - failed to rename "%location%\%mydir_post%"&&GOTO :eof
ECHO Successful completion
ENDLOCAL
答案3
这是一个简单的解决方法,
在.bat文件中:
rename "path to the file" "NewName"
"Path to your program"
rename "path to the file with the new name" "defaultName"
我的电脑上的一个例子:
rename "C:\Users\myAccount\Desktop\defaultFolder" "NewName"
"C:\Program Files\BreakPoint Software\Hex Workshop v6.8\HWorks64.exe"
rename "C:\Users\myAccount\Desktop\NewName" "defaultFolder"
当运行.bat文件时,文件将被重命名并且程序启动,程序关闭后,名字将被重置。
祝你好运,