DドライブのGoogleドライブフォルダにバッチファイルがあります。私の考えは、デスクトップ上でリンクし、動的にフォルダを指すようにして、毎回フォルダに移動する必要がないようにすることでした。フォルダの名前は、別のディレクトリにあるフォルダの数に基づいて増えます。このような:
D:\Google Drive\Projects\2017Project\OldBackups\
このフォルダには、57個の古いバックアップフォルダがあります。 2017Project_1 に 2017年プロジェクト57
D:\Google Drive\Projects\2017Project\
というフォルダが含まれています 2017年プロジェクト58
それはの現在のバージョンです 2017年プロジェクト 私が取り組んでいること、それが私の近道が指すところです。その58番目のバックアップをOldBackupsに移動して、 2017年プロジェクト59 、ショートカットからバッチファイルを実行するだけで、非常にすばやくナビゲートできます。
バッチファイルはとてもうまくいきます。フォルダの数を数えます。 OldBackups 、番号を1つ増やしてからナビゲートします。それはこのように見えます:
@echo off &setlocal
for /d %%j in (*.*) do set /a count+=1
SET /A num=count+1
set NEW_PATH=%~dp0..\2017Project_%num%
%SystemRoot%\explorer.exe %NEW_PATH%
endlocal
バッチファイルは中に置かれます OldBackups 。
そのため、ショートカットを使用するたびにコマンドプロンプトウィンドウが表示されないように、非表示のバッチファイルを実行するためにVBScriptを使用したいと思いました。
VBScriptは次のようになります。
set shell=CreateObject("Shell.Application")
shell.ShellExecute "CountFiles.bat",,"D:\Google
Drive\Projects\2017Project\Old Backups\", "runas", 0
set shell=nothing
他のバッチファイルが隠されて実行されていることを確認するのに役立ちます。しかし、これではうまくいきません。代わりに、フォルダ数198を返してからエクスプローラをマイドキュメントに開きます。チェックして、D:\ Google Driveなどのフォルダを数える代わりに、C:\ Windows \ System32 \内のフォルダの数を数えています。
OldBackupsの内部から直接実行した場合、バッチファイルは意図したとおりに機能しますが、VBScript(OldBackupsにも保存されている)から実行した場合は機能しません。
RUNAS
動詞として、作業ディレクトリはsystem32になります。昇格した権限でスクリプトを実行する必要がある理由はありますか?
FOR /D
コマンド。意味がありません。また、あなたの両方CALL
コマンドは不要です。彼らはただあるべきですecho %%j
そしてecho %count% folder(s^)
。この行にパーセント記号もありません。SET /A num=%count+1
しかし、あなたはそれを削除することができます:SET /A num=count+1