ユーザ用ツール

サイト用ツール


it技術:バッチファイル

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
次のリビジョン両方とも次のリビジョン
it技術:バッチファイル [2017/04/19 17:37] yajuadminit技術:バッチファイル [2019/02/18 11:59] – [日時YYYYMMDDHHMMSS形式のセット] yajuadmin
行 5: 行 5:
 cd /d %~dp0 cd /d %~dp0
 </code> </code>
 +“%~dp0” は、“%0” で 0 番目の引数 (つまりバッチファイルのフルパス) から、“~” (チルダ) で両端を囲むダブルクオートを取り除き、“d” でドライブレターを残し、更に “p” でパスを残す、つまり、バッチファイルのあるフォルダまでのパスを示しています。
  
 +===== 32bit環境で実行 =====
 +64bitOS上では、コマンドプロンプトやCScriptは64bitで動作してしまうため、WOW64内環境内で実行させる必要がある。\\
 +[[http://www.atmarkit.co.jp/ait/articles/1007/01/news131.html|Win32アプリケーションを実行するWOW64]]
 +
 +Excelファイルのデータアクセスに「OLEDB4.0」を使う場合、32bit環境でないとエラーとなる。\\
 +IISで32bitモードで動作する際に使用するモジュールのレジストリ登録も32bit環境で実行させる。
 +==== VBSの場合 ====
 +<code bat>
 +%windir%SysWOW64\cscript.exe xxxxx.vbs
 +または
 +%windir%SysWOW64\cmd.exe xxxxx.vbs
 +</code>
 +==== レジストリ登録の場合 ====
 +「ファイル名を指定して実行」で入力する
 +<code bat>
 +%windir%SysWOW64\regsvr32 xxxxx.dll
 +</code>
 ===== 変数の値が反映されない ===== ===== 変数の値が反映されない =====
 if文、for文の中に書いた処理は「()を抜けてから」変数の値が反映される。\\ if文、for文の中に書いた処理は「()を抜けてから」変数の値が反映される。\\
行 39: 行 57:
     echo ファイルが見つかりません ^(%filePath%^)     echo ファイルが見つかりません ^(%filePath%^)
 ) )
 +</code>
 +
 +===== 日時(YYYYMMDDHHMMSS)形式のセット =====
 +現在時刻をYYYYMMDDHHMMSS形式で取得する。
 +
 +<code>
 +set time_tmp=%time: =0%
 +set now=%date:/=%%time_tmp:~0,2%%time_tmp:~3,2%%time_tmp:~6,2%
 +echo %now%
 </code> </code>
  
行 194: 行 221:
  
 回避策としては複写先に円記号(\)を付ける。または下記のように強制的にファイルにecho F(ファイル) or D(ディレクトリ)を指定する。\\ 回避策としては複写先に円記号(\)を付ける。または下記のように強制的にファイルにecho F(ファイル) or D(ディレクトリ)を指定する。\\
-<wrap em>※複写元の下位フォルダに同じファイルがある場合、最後に見つかったファイルがコピーされる。</wrap>\\+※複写元の下位フォルダに同じファイルがある場合、最後に見つかったファイルがコピーされる。\\
 その場合、XCopyをやめてCopy(複写先にフォルダの作成が必要)にするか、更新日が新しいのが確実なら「/D」を付ける。 その場合、XCopyをやめてCopy(複写先にフォルダの作成が必要)にするか、更新日が新しいのが確実なら「/D」を付ける。
 <code bat> <code bat>
行 236: 行 263:
 </code> </code>
  
 +===== フォルダ自体をコピーする =====
 +フォルダ自体をコピーするには、コピー先にフォルダを指定する。
 +<code>
 +robocopy C:\AAA\hoge D:\BBB\hoge /E
 +echo d | xcopy C:\AAA\hoge D:\BBB\hoge /E
 +</code>
 +
 +==== フォルダの更新日時を維持してコピーする ====
 +フォルダの更新日時を維持してコピーするには、robocopyのオプション「/DCOPY:T」を使う。
 +<code>
 +robocopy C:\AAA\hoge D:\BBB\hoge /E /DCOPY:
 +</code>
 ===== 参照 ===== ===== 参照 =====
   * [[http://qiita.com/yz2cm/items/8058d503a1b84688af09|バッチファイルでの試行錯誤を回避するためのメモ]]   * [[http://qiita.com/yz2cm/items/8058d503a1b84688af09|バッチファイルでの試行錯誤を回避するためのメモ]]
   * [[http://language-and-engineering.hatenablog.jp/entry/20130502/PatternsOfMSDOSorBAT|反復して実行可能に]]   * [[http://language-and-engineering.hatenablog.jp/entry/20130502/PatternsOfMSDOSorBAT|反復して実行可能に]]
   * [[https://www.k-tanaka.net/cmd/xcopy.php|xcopyのコマンド一覧]]   * [[https://www.k-tanaka.net/cmd/xcopy.php|xcopyのコマンド一覧]]
it技術/バッチファイル.txt · 最終更新: 2021/04/09 10:23 by yajuadmin