ユーザ用ツール

サイト用ツール


it技術:バッチファイル

差分

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

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
it技術:バッチファイル [2017/11/02 13:10] – [FastCopy] yajuadminit技術:バッチファイル [2021/04/09 10:23] (現在) – [UNCパスの対応方法] yajuadmin
行 57: 行 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>
  
行 86: 行 95:
 </code> </code>
  
 +===== 2重引用符を削除 =====
 +%n変数に〜チルダ文字を追加する。
 +
 +<code bat>
 +set befPath=%~1
 +</code>
 ===== ログとリダイレクト ===== ===== ログとリダイレクト =====
 [[http://language-and-engineering.hatenablog.jp/entry/20130502/PatternsOfMSDOSorBAT|ログとリダイレクト]] [[http://language-and-engineering.hatenablog.jp/entry/20130502/PatternsOfMSDOSorBAT|ログとリダイレクト]]
行 150: 行 165:
 |Windowsで一定期間経過した古いファイルを自動削除するコマンドは?コマンドプロンプト標準コマンドがある]] |Windowsで一定期間経過した古いファイルを自動削除するコマンドは?コマンドプロンプト標準コマンドがある]]
  
 +==== UNCパスの対応方法 ====
 +forfilesでUNCパスを指定すると「unc パス ( コンピューター名 共有名) はサポートされていません。」のエラーになる。
 +
 +forfilesでUNCパスが非対応なので、前行で pushd UNCパス とする。
 +
 +<code>
 +SET NET_DIR=\\192.168.64.100\work\
 +
 +net use %NET_DIR% xxxxxxx /USER:xxxxxxx
 +
 +pushd %NET_DIR%
 +forfiles /M *.txt /C "cmd /c if @isdir==FALSE del /s @path" /D -30 >> logdel.log
 +popd
 +</code>
 ===== 常に管理者権限で実行する ===== ===== 常に管理者権限で実行する =====
 ショートカットを管理者で実行するように設定\\ ショートカットを管理者で実行するように設定\\
行 158: 行 187:
   * [[http://vbsguide.seesaa.net/article/434439007.html|VBScript を『管理者として実行する』]]   * [[http://vbsguide.seesaa.net/article/434439007.html|VBScript を『管理者として実行する』]]
  
 +===== 管理者権限か判定する =====
 +管理者権限か判定して警告メッセージを出す。
 +
 +[[https://www.rootlinks.net/2014/08/28/%E3%83%90%E3%83%83%E3%83%81%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8C%E7%AE%A1%E7%90%86%E8%80%85%E6%A8%A9%E9%99%90%E3%81%A7%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8B%E7%A2%BA/|バッチファイルが管理者権限で動作しているか確認]]
 +
 +<code bat>
 +@echo off
 +openfiles > NUL 2>&
 +if %ERRORLEVEL% EQU 0 goto Admin 
 +echo 管理者権限で実行してください。
 +pause
 +exit
 + 
 +:Admin 
 +echo 管理者権限で実行中
 +</code>
 ===== レジストリのコマンド編集 ===== ===== レジストリのコマンド編集 =====
 regeditはコマンドラインから実行した場合、成否をerrorlevel環境変数に設定しないため、バッチファイルから使用する場合はregコマンドを使うことが望ましい。\\ regeditはコマンドラインから実行した場合、成否をerrorlevel環境変数に設定しないため、バッチファイルから使用する場合はregコマンドを使うことが望ましい。\\
行 212: 行 257:
  
 回避策としては複写先に円記号(\)を付ける。または下記のように強制的にファイルにecho F(ファイル) or D(ディレクトリ)を指定する。\\ 回避策としては複写先に円記号(\)を付ける。または下記のように強制的にファイルにecho F(ファイル) or D(ディレクトリ)を指定する。\\
-<wrap em>※複写元の下位フォルダに同じファイルがある場合、最後に見つかったファイルがコピーされる。</wrap>\\+※複写元の下位フォルダに同じファイルがある場合、最後に見つかったファイルがコピーされる。\\
 その場合、XCopyをやめてCopy(複写先にフォルダの作成が必要)にするか、更新日が新しいのが確実なら「/D」を付ける。 その場合、XCopyをやめてCopy(複写先にフォルダの作成が必要)にするか、更新日が新しいのが確実なら「/D」を付ける。
 <code bat> <code bat>
it技術/バッチファイル.1509595840.txt.gz · 最終更新: 2017/11/02 13:10 by yajuadmin