web-dev-qa-db-ja.com

プログラムを起動および終了するときにフォルダの名前を変更するバッチファイルを作成するにはどうすればよいですか?

プログラムの起動時にフォルダの名前を変更するバッチファイルを作成するにはどうすればよいですか? -Word.exeを起動したいと同時に、フォルダの名前を変更する必要があるとしますc:\users\my profile\my Word documents することが my documentsそして私が存在するときWord.exeバッチはフォルダの名前を元の名前に変更します。

-後で編集-

ここで私がする必要があること

  1. プログラムを開始します
  2. プログラムが完全にロードされるまで待ちます
  3. フォルダの名前を変更します
  4. プログラムは私がそれを閉じるまで待ちます
  5. プログラムを閉じようとしているときは、バッチがフォルダの名前を元に戻すまで、プログラムを閉じてはいけません(待つ)必要があります
  6. プログラムを閉じる
2
hsawires

[〜#〜] call [〜#〜] ステートメントを使用して、プログラムが開いている間待機するようにバッチスクリプトに指示します。

@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スクリプト または 。NETアプリケーションレベルのアドイン を作成することですこれは、BATCHだけでは実際には実行できないためです。

1
krowe

以下を参照してください。ニーズに合わせて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
2
gogoud

ここに簡単な回避策があります、

.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ファイルを実行すると、ファイルの名前が変更され、プログラムが起動します。プログラムを閉じると、名がリセットされます。

幸運を、

1
younes zeboudj