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

バッチファイルは、スクリプトファイルのタイプに付けられた名前です。テキストファイルには、MS-DOSおよびMicrosoftWindowsでコマンドインタープリターによって実行される一連のコマンドが含まれています。


7
Windowsコマンドプロンプト:コマンドの出力を環境変数に取得する方法
cmd.exeに曜日を含む環境変数が必要です。 このコマンドを実行すると、必要な結果が得られます。 C:\Users\tisc> powershell (get-date).dayofweek Friday ここでは、結果を環境変数に保存しようとしています。 C:\Users\tisc> set dow = powershell (get-date).dayofweek しかし、取得しようとすると、望みどおりの文字列を取得できません。 C:\Users\tisc> set dow DoW=0 dow = powershell (get-date).dayofweek 私の目標は、一部のバックアップスクリプトのバッチファイルで変数を使用することです。

4
現在実行されているバッチスクリプトを含むディレクトリを取得します
%0バッチファイルで使用して、バッチファイルのディレクトリを取得しますが、結果は次のとおりです。 c:\folder1\folder2\batch.bat このように、バッチファイル名なしのディレクトリだけが必要です。 c:\folder1\folder2\ どうすればいいですか?たぶん、パスをフィルタリングする必要があります。はいの場合、どうすればいいですか?

13
%time%変数を使用するバッチスクリプトの先頭にゼロが必要です
ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 ファイルの命名に日付と時刻のデータを使用するDOSスクリプトのバグに出会いました。問題は、時間変数が時間<10に対して先行ゼロを自動的に提供しなかったためにギャップが発生したことでした。 誰でもこれを修正するために条件付きで先行ゼロをパディングする方法を知っていますか? 詳細:ファイル名設定コマンドは次のとおりです。 set logfile=C:\Temp\robolog_%date:~-4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.log C:\ Temp \ robolog_20100602_ 93208.log(午前9時23分)になります。 この質問はこれに関連しています。 ありがとう

3
Windowsのbatスクリプトで1からnまでカウントするForループ
batスクリプトファイル内でWindowsコマンドをn回実行する必要があります。私はさまざまなプログラミング言語でこれを行う方法を知っていますが、Windowsコマンドラインでそれを正しく実現することはできません:-( 私はどちらかのようなものを期待するだろう for(int i = 0; i < 100; i++) { // do something } またはこれも(完全に真剣ではありませんが) 1.upto(100, { // do something }) ありがとう! 編集 java、perl、c、またはこのようなバットスクリプトを生成するものでプログラムを書くことができます for %%N in (1 2 3 4 5 6 7 8 9 10 11 12) do echo %%N 等々。または「より良い」: echo 1 echo 2 echo 3 …

6
.batファイルを介してネットユーザー経由で期限切れのないパスワードとユーザーを作成する方法
私は.bat fileWindowsオペレーティングシステムレベルでユーザーとパスワードを作成するために使用しています。 直面している問題はEXPIRES:NEVER、パスワードを渡すとき、ユーザーが作成されるとき、"Password never expires"チェックボックスがチェックされていないこと(作成されたユーザーに対してパスワードの有効期限が選択されていないことを意味します)、およびユーザーは90日後に自動的に期限切れになります。 Net User %1 %2 /COMMENT:"%3" /EXPIRES:NEVER /PASSWORDCHG:NO /ADD 上記はコードのメイン行です。テキストファイルからユーザー名とパスワードを渡し、.batファイルを実行します。
23 windows  batch 


3
バッチファイルのロケールを認識しない%DATE%および%TIME%?
環境変数は、コマンドラインで、バッチファイル内のWindowsマシン上の現在の日付と時間を提供します。%DATE%%TIME% 残念ながら、これらの値はロケールに対応しています!つまり、ドイツのマシンでは、次のようになります 26.1.2011 の代わりに 2011-26-01 この変数をファイル名で使用する場合、これはソートを台無しにします。 YYYY-MM-DDWindowsバッチファイルでロケールを認識しない日付文字列を取得する簡単な方法はありますか? とりあえず、私はこのかなり気味の悪い回避策に取り組んでいます: for /f "tokens=1,2,3,4 delims=. " %%i in ('date /t') do set date=%%k-%%j-%%i echo %date% しかし、これは現在ドイツのロケール固有です-明らかに、完全に独立したソリューションの方がずっといいでしょう。 問題のOSはServer 2008です。可能な限り、サードパーティのツールを使用しないことをお勧めします。

8
プログラムがスケジュールされたタスクとして適切に実行されない
状況 いくつかのファイルを準備し、プログラム(.exe)を実行し、そのファイルを削除するバッチスクリプトがあります。 このタスクは1時間ごとに実行する必要があるため、スケジュールされたタスクを使用してこれを構成しようとしています。問題は、前述のプログラムがタスクから呼び出されたとき(.batスクリプトを介して、または.exe直接呼び出したとき)に適切に実行されないことですが、ログに警告またはエラーメッセージが表示されません。 セットアップ タスクは、すべての特権が適切に設定されたWindowsサービスアカウントとして実行するように構成されています。RDP経由でログオンにこのアカウントを使用する場合は、私が実行できる.batと.exe直接の問題もなく、それでも仕事は何もしないように表示されます。プログラムは常にファイルを変更し、タイムスタンプで変更されたものはタスク中に変更されないため、これは容易に観察されます。 スケジュールされたタスクログで、プロセスの開始、終了などのタスクの情報メッセージを取得します。ただし、「結果コード」は111(運がなくてGoogleに試されました。 「これはまったく無関係です)。アプリケーションログに、まったく何も表示されません。 私が疑うのは問題です GUIは対話を必要とせず、操作後に終了するため、GUIは必要ありませんが、プログラムは何らかのスプラッシュスクリーン(実際には通常のウィンドウです)を生成する古い怪物です。ウィンドウが約2秒間表示されます。 GUIのこの要件は、タスクの失敗と関係があると思われますが、よくわかりません。タスクが(RDPを介して)実行されるユーザーでログインすると、スケジュールされたタスクを開始するときにウィンドウが表示されません。 GUIについて編集する メインウィンドウなしで(を使用してProcessStartInfo.WindowStyle = ProcessWindowStyle.Hidden)プログラムを起動する非常に小さなC#実行可能ファイルを作成しました。この方法でも、スケジュールされたタスクはプログラムを正常に起動することに成功しませんが、戻りコードはになりました0。 更新 「ユーザーがログオンしているかどうかに関係なく実行する」ようにタスクを構成し、run with highest privilegesオプションがオフになっている場合、エラー値は2147943859です。 トラブルシューティングを行うにはどうすればよいですか? OS = Windows Server 2008 R2 SP1 さらに情報が必要な場合は、コメントでお知らせください。

8
フォルダー内のファイルを期限切れにする:x日後にファイルを削除する
誰でもアクセスできるWindows共有ドライブに「ドロップフォルダー」を作成したいと考えています。ファイルがX日以上フォルダー内にある場合、ファイルを自動的に削除したいです。 ただし、ファイルの最終変更日、最終アクセス時刻、または作成日を使用して、これを行うことがわかったすべての方法のようです。 これをユーザーがファイルをドロップして誰かと共有できるフォルダーにしようとしています。誰かがここにファイルをコピーまたは移動した場合、この時点で時計が動き始めます。ただし、実際にファイルを変更しない限り、ファイルの最終変更日と作成日は更新されません。最終アクセス時間があまりにも頻繁に更新されます... Windows Explorerでディレクトリを開くだけで最終アクセス時間が更新されるようです。 誰でもこれに対する解決策を知っていますか?ファイルのハッシュを毎日カタログ化し、特定の日付よりも古いハッシュに基づいてファイルを期限切れにすることは解決策になると考えています...しかし、ファイルのハッシュを取得するには時間がかかる可能性があります。 どんなアイデアでも大歓迎です! 注: 私はすでにここで非常に多くの回答を見てきました...ファイルサーバーリソースモニター、PowerShellスクリプト、バッチスクリプトなどを調べました。彼らはまだ最終アクセス時間、最終変更時間または作成時間を使用しています...説明したように、これは上記のニーズに適合しません。


1
ワークステーションがネットワークに接続されていない場合、シャットダウンスクリプトは実行されません
コンピューターがネットワークに接続されているかどうかに関係なく、システムがシャットダウンされるたびにバッチスクリプトを実行する必要があります。(質問には関係ありませんが、問題のスクリプトはマシンの印刷キューをクリアします。 ただし、以下の方法を使用すると、PCがネットワークからオフラインのときにこのスクリプトを実行できません。 また、問題のPCがWindows 10 Pro x64(バージョン1809)を実行していることも付け加えておきます。ドメインコントローラーはWindows Server 2008 R2を実行しており、ここでも私が実行しましたgpedit.msc。 これまでに行ったこと: マシンシャットダウンスクリプトを使用してActive Directory グループポリシーオブジェクトを作成しました。 SYSVOLの GPOフォルダーにスクリプトを追加しました。 このGPOが実際に問題のワークステーションのハードディスクにダウンロードされているため、オフラインでアクセスできることを確認しました。 GPOで指定されたパスは相対パスであり、絶対パスではありません。 私が起こりたいこと: PCがシャットダウンされると、ClearPrintQueue.batスクリプトはPCが現在ネットワークに接続されているかどうかに関係なく実行されます。 実際に起こること: PCがシャットダウンされると、ClearPrintQueue.batスクリプトはPCが現在ネットワーク経由でSYSVOL共有に到達できる場合にのみ実行されます。 詳細: 私が行ったことは、ドメイン内にグループポリシーオブジェクトを作成し、問題のマシンを含むテストOUにリンクすることです。 GPOを編集して、[ コンピューターの構成] -> [ ポリシー] -> [ Windowsの設定] -> [ スクリプト(スタートアップ/シャットダウン)] -> [シャットダウン]に移動しました シャットダウン特性下のあたりのように: [ ファイルの表示 ]をクリックすると、エクスプローラーが開いてフォルダーが表示されます\\example.com\SysVol\example.com\Policies\{1B61F884-9D14-4065-8265-F04FFDE41683}\Machine\Scripts\Shutdown このフォルダーとClearPrintQueue.batファイルの内容は次のとおりです。 PS C:\> Get-ChildItem "\\example.com\SysVol\example.com\Policies\{1B61F884-9D14-4065-8265-F04FFDE41683}\Machine\Scripts\Shutdown" Directory: \\example.com\SysVol\example.com\Policies\{1B61F884-9D14-4065-8265-F04FFDE41683}\Machine\Scripts\Shutdown Mode LastWriteTime Length …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.