タグ付けされた質問 「vbscript」

Microsoftが開発した、Visual Basicをモデルにしたインタープリタ型スクリプト言語

12
フォルダーとそのサブフォルダーからすべてのファイルを削除する
フォルダー構造からすべてのファイルを削除したいので、空のフォルダー構造が残っています。 これは、バッチまたはVBScriptのスクリプトで実現できますか? 非常に基本的なバッチコマンドを試しましたが、これにはユーザーが各ファイルの削除を許可する必要がありました。これは適切なソリューションではありませんでした。何百ものファイルがあり、時間の経過とともに大幅に増加するからです。 何を提案できますか?

5
CMDからMsgboxを直接表示する方法
CMDを使用してユーザーにメッセージを表示したい。私が知っている方法は、.vbs(VBScript)ファイルを作成し、次のようにCMDから実行することです。 (echo MsgBox "Line 1" ^& vbCrLf ^& "Line 2",262192, "Title")> File.vbs start File.vbs しかし、私がやりたいのは、CMDから直接、ファイルを作成せずにメッセージを表示することです。コマンドを使用して、CMDからVBScriptsを直接実行している可能性があります。

4
スクリプト-ネットワークパスが使用可能かどうかを確認してからマップする方法
ネットワークパスが利用可能かどうかを確認し、それをユニットにマップするスクリーンセーバー/ログオンスクリプトが必要です。利用できない場合は、切断/接続しません。 ネットワークパスは\ 192.168.1.1 \ drive1です また、そのパスに接続するにはユーザー名/パスワードを使用する必要があります。

5
WindowsコマンドラインはGBでディスク容量を取得します
サーバーのC:\ドライブの合計サイズと空き容量をプルするバッチファイルを作成しようとしています(ローカルで実行するスクリプト)。また、出力を簡単に読み取れるようにする必要があるため、バイトが機能しないため、temp .vbsファイルを作成するコマンドラインがあっても問題ありません。 以下はうまくいくようですが、フォーマット/数学が正しくありません。 setlocal for /f "tokens=6" %a in ('fsutil volume diskfree C: ^| find "of bytes"') do set diskspace=%a echo wsh.echo FormatNumber(cdbl(%diskspace%)/1024, 0) > %temp%.\tmp.vbs for /f %a in ('cscript //nologo %temp%.\tmp.vbs') do set diskspace=%a del %temp%.\tmp.vbs echo For example %diskspace% 上記のコマンドも空き領域のみを表示しています...合計サイズも必要です...次のコマンドが情報をプルするのに適しているかどうか疑問に思います: WMIC LOGICALDISK GET Name,Size,FreeSpace | find /i …

2
標準USBペンドライブに保存されたバッチファイル(またはVBスクリプト)を使用したWindows XP / Win-7の自動ログイン
なぜ私はこれを必要とします: ペンドライブにバッチスクリプトとその他の診断ツールが満載です。75のスタンドアロン(ネットワーク接続されていない)PCがあり、そのほとんどがWin-XP-Pro SP-2を搭載した2つのラボです。何かを設定または診断するために、管理者アカウントで各PCにログインする必要があることがよくあります。 そのため、PCを起動するときに、ログイン画面から手動でユーザー名を選択し、そのパスワードを入力する必要があります。 次に、Admin Accにログインします。ペンドライブがPCに接続されている場合、自動的に(プログラムによって)。 私が知っていること: XP / Win7にユーザーがログインする前にスクリプト(バッチファイル)を実行できることを知っています。バッチファイルを書いてローカルPCに保存しました。システムの起動時に実行するようにグループポリシーで構成しました(GPOの場所:コンピューターの構成\ Windowsの設定\スクリプト(スタートアップ/シャットダウン)\ Sartup)。このバッチファイルは、ペンドライブが接続されているかどうかを正常に検出しました。 ペンドライブに別のバッチファイル(現在は空白)が保存されています。 最初のバッチファイルは、ループを使用してCからZまでのすべてのドライブで2番目の(login.bat)バッチファイルを検索します。ファイルが存在する場合、ペンドライブが存在すると想定し、2番目の(login.bat)バッチファイルをさらに呼び出して続行します。 私が知らないこと: 今、login.batファイルのコードがどうあるべきかわからない、または実際にログインする方法がわかりません。 他に考えられる選択肢は何ですか? バッチファイルのみを使用する必要はありません。私はまた、「使用するVB Scriptなどの自動ログインの他のオプションがある場合、または他のサードパーティの実行可能ファイルがある場合」も検討できます。 編集: この質問によると、バッチスクリプトを介してWindowsで自動ログオン用にユーザーを設定するレジストリエントリを変更して自動ログオンを許可するスクリプトを作成できます。これは機能しますが、変更を適用するにはPCを再起動する必要があります。これは避けたいものです。個人的にログインするよりも、スクリプトの実行と再起動に時間がかかります。 オンデマンドで自動的にログオンできるようにしたいと思います。つまり、ペンドライブを接続すると、PCを再起動しなくても、スクリプトで管理者アカウントにログインできるようになります。 私はGINAのdllファイルを作成することでそれを実現できることをウェブ上で読みましたが、その分野での経験はありません。これを実装する方法はありますか?


2
VBSファイルへのECHO出力の書き込みが機能しない
各行をエコーし​​、作成されたファイルに出力を向けることにより、VBスクリプトを作成するバッチスクリプトを作成しています。コマンドライン変数を取得してVBS変数として使用する2行を除いて、ほとんどの部分で機能します。これはコードです: ECHO:strHomeFolder = oShell.ExpandEnvironmentStrings^(^"^%USERPROFILE^%^"^) >> uninstallBeta.vbs ECHO:strProgramData = oShell.ExpandEnvironmentStrings^(^"^%ProgramData^%^"^) >> uninstallBeta.vbs VBスクリプトでは次のようになります。 strHomeFolder = oShell.ExpandEnvironmentStrings("%USERPROFILE%") strProgramData = oShell.ExpandEnvironmentStrings("%ProgramData%") しかし、バッチスクリプトは、を含む行全体をエコーするだけ>> uninstallBeta.vbsです。なぜこれが起こるのか?他のVBSおよびバッチスクリプトを作成するための同様の行があり、この方法でうまく機能すると思います。タイプミスをチェックしましたが、見つかりませんでした。コマンドプロンプトでは正常に機能しますが、バッチスクリプトでは機能しません。

2
プログラムでWindows 7のスタートメニューにエントリを追加しますか?
すべてのユーザーのWindows 7スタートメニューにプログラムでエントリを追加するにはどうすればよいですか?たとえば、myapp.exeへのショートカットとwww.myapp.comのURLを含むフォルダーMyAppsを追加する場合があります。 理想的には、バッチファイルでこれを実行したいのですが、VBScriptまたはPowerShellも使用してください。

1
ファイルをバッチで書き込みますが、テキストが消えます
バッチファイルでファイルを書き込む際に問題があります。1つのキャラクターがこのようなエコーエンドをトリガーしているようです。コードはダウンローダーです。 C:\ProgramData\Tempfolder\test.vbs ECHO if WScript.Arguments.Count < 1 then しかし、ファイル出力はこれです。 if WScript.Arguments.Count then これが私のコードです: mkdir C:\ProgramData\Tempfolder >> C:\ProgramData\Tempfolder\test.vbs ECHO if WScript.Arguments.Count <1 then >> C:\ProgramData\Tempfolder\test.vbs ECHO MsgBox "Usage: wget.vbs <url> (file)" >> C:\ProgramData\Tempfolder\test.vbs ECHO WScript.Quit >> C:\ProgramData\Tempfolder\test.vbs ECHO end if >> C:\ProgramData\Tempfolder\test.vbs ECHO URL = WScript.Arguments(0) >> C:\ProgramData\Tempfolder\test.vbs ECHO if WScript.Arguments.Count …

3
Microsoft Officeバージョン名を検出する方法
プログラム的に、インストールされているMicrosoft Officeバージョンの名前を取得できる方法は何ですか?Powershellコマンド、VBScript、WMIクエリをすべて見つけました。レジストリとファイルシステムに目を通しましたが、インストールされたOfficeバージョンを収集するための完璧な方法は見つかりません。 私が思いついた最も近い方法は、WMICクエリを使用することでした。 wmic product where "Name like '%Office%'" get name,version 残念ながら、これはさまざまなアプリケーションの配列を返します。さらに細かくフィルタリングしても、「Office 16」が「Pro」、「Professional Plus」、または「Office365」であるかどうかはわかりません。 それ以外の場合、レジストリ値 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Scenario\INSTALL\ProductstoAdd 少なくともバージョン2016には存在しますが、古いバージョンには存在しません。また、それ自体にはフレンドリ名が含まれていないため、データProPlusRetail.16_en-us_x-noneを「Office 2016 Professional Plus」またはO365BusinessRetail.16_en-us_x-none「Office 365 Business(2016)」に変換するには、さらにスクリプトを作成する必要があります。 私は誰かが巨大なスクリプトのif / elseif / elseifステートメントの束よりも簡単な方法論を持っていることを望んでいます。

1
GB単位の物理ドライブサイズを取得するWindowsコマンドライン
私は以下の簡単なコードを使用しているコマンドラインですべての接続されたディスクドライブのモデル、名前、インデックス、サイズを表示したい wmic diskdrive GET index,caption,name,size /format:table 出力 Caption Index Name Size SAMSUNG SSD PM830 2.5" 7 0 \\.\PHYSICALDRIVE0 256052966400 Seagate backup plus 1 \\.\PHYSICALDRIVE1 536870912000 サイズをGB単位で表示することを除いて、上記と同じ出力が必要です。 forループとtemp vbファイルを使用してそれを行う方法はいくつかあると思います。 Windows cmdコードを具体的に探しています。誰でも助けることができますか? サイズ変換を行い、cmdで表示することができます for /f "tokens=1,2" %a in ('WMIC DISKDRIVE GET Name^,Size ^|FINDSTR /I /V "Name"') do @echo wsh.echo "%a" ^& " …

0
VBScriptでフォルダを数えるためにバッチファイルを実行すると、System32でフォルダ数が実行されます。
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\", …

1
VBSスクリプトでフォルダーを除外する
スタートメニューからすべてを削除し、ゼロから再び追加するVBSスクリプトがあります。これをドメインのログオンスクリプトとして使用します。しかし、先週、一部の人々が異なるアプリケーションを使用しており、それらのアプリケーションが中央の共有上にないことに気づいたので、私の質問は、このスクリプトから特定のフォルダーを削除から除外することです Dim objShell, strCmd, intRunError, strFolder, objFileSys Set objShell = CreateObject( "WScript.Shell" ) appDataLocation=objShell.ExpandEnvironmentStrings("%APPDATA%") Set fso = CreateObject("Scripting.FileSystemObject") Set folder = fso.GetFolder(appDataLocation & "\Microsoft\Windows\Start Menu\Programs") ' delete all subfolders and files For Each f In folder.SubFolders On Error Resume Next name = f.name f.Delete True Next ' delete all files …

1
特定のcmd.exeをバッチまたはvbsで殺すには?
私は3つのバッチファイルを持っています open.bat run.bat process.bat open.bat呼び出しrun.batとrun.bat呼び出しprocess.bat.. 3つはすべて実行し続けます。cmd.exeを強制終了する方法があることはわかっています。しかし、私の問題は、batcgファイルを実行している特定のcmd.exeを強制終了する方法です 私の場合、私は閉じているopen.batときに殺す必要がありprocess.batます。私はこれに慣れていないので、できる限り詳細に案内してください。ありがとう。 cmd.exe / open.bat cmd.exe / run.bat cmd.exe / process.bat それを殺すために特定のcmd.exeを言及する方法は?vbsまたはcmdを使用しますか? 事前に感謝します。

0
.batクーマンドを.vbsに翻訳する
このコードを実行する必要がありますが、「黒いCMDウィンドウ」はありません。Googeing起動時にVBSスクリプトは「見えない」ので、このコードを.vbsファイルに翻訳してください。 @echo off set delay=1 ping localhost -n %delay% net use Z: "\\GMEDIASTATION\music" net use Y: "\\GMEDIASTATION\Public" "C:\Program Files (x86)\AlbumPlayer\AlbumPlayer.exe"

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.