it技術:バッチファイル
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
it技術:バッチファイル [2017/11/02 13:10] – [FastCopy] yajuadmin | it技術:バッチファイル [2021/04/09 10:23] (現在) – [UNCパスの対応方法] yajuadmin | ||
---|---|---|---|
行 57: | 行 57: | ||
echo ファイルが見つかりません ^(%filePath%^) | echo ファイルが見つかりません ^(%filePath%^) | ||
) | ) | ||
+ | </ | ||
+ | |||
+ | ===== 日時(YYYYMMDDHHMMSS)形式のセット ===== | ||
+ | 現在時刻をYYYYMMDDHHMMSS形式で取得する。 | ||
+ | |||
+ | < | ||
+ | set time_tmp=%time: | ||
+ | set now=%date:/ | ||
+ | echo %now% | ||
</ | </ | ||
行 86: | 行 95: | ||
</ | </ | ||
+ | ===== 2重引用符を削除 ===== | ||
+ | %n変数に〜チルダ文字を追加する。 | ||
+ | |||
+ | <code bat> | ||
+ | set befPath=%~1 | ||
+ | </ | ||
===== ログとリダイレクト ===== | ===== ログとリダイレクト ===== | ||
[[http:// | [[http:// | ||
行 150: | 行 165: | ||
|Windowsで一定期間経過した古いファイルを自動削除するコマンドは?コマンドプロンプト標準コマンドがある]] | |Windowsで一定期間経過した古いファイルを自動削除するコマンドは?コマンドプロンプト標準コマンドがある]] | ||
+ | ==== UNCパスの対応方法 ==== | ||
+ | forfilesでUNCパスを指定すると「unc パス ( コンピューター名 共有名) はサポートされていません。」のエラーになる。 | ||
+ | |||
+ | forfilesでUNCパスが非対応なので、前行で pushd UNCパス とする。 | ||
+ | |||
+ | < | ||
+ | SET NET_DIR=\\192.168.64.100\work\ | ||
+ | |||
+ | net use %NET_DIR% xxxxxxx / | ||
+ | |||
+ | pushd %NET_DIR% | ||
+ | forfiles /M *.txt /C "cmd /c if @isdir==FALSE del /s @path" /D -30 >> logdel.log | ||
+ | popd | ||
+ | </ | ||
===== 常に管理者権限で実行する ===== | ===== 常に管理者権限で実行する ===== | ||
ショートカットを管理者で実行するように設定\\ | ショートカットを管理者で実行するように設定\\ | ||
行 158: | 行 187: | ||
* [[http:// | * [[http:// | ||
+ | ===== 管理者権限か判定する ===== | ||
+ | 管理者権限か判定して警告メッセージを出す。 | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | <code bat> | ||
+ | @echo off | ||
+ | openfiles > NUL 2>& | ||
+ | if %ERRORLEVEL% EQU 0 goto Admin | ||
+ | echo 管理者権限で実行してください。 | ||
+ | pause | ||
+ | exit | ||
+ | |||
+ | : | ||
+ | echo 管理者権限で実行中 | ||
+ | </ | ||
===== レジストリのコマンド編集 ===== | ===== レジストリのコマンド編集 ===== | ||
regeditはコマンドラインから実行した場合、成否をerrorlevel環境変数に設定しないため、バッチファイルから使用する場合はregコマンドを使うことが望ましい。\\ | regeditはコマンドラインから実行した場合、成否をerrorlevel環境変数に設定しないため、バッチファイルから使用する場合はregコマンドを使うことが望ましい。\\ | ||
行 212: | 行 257: | ||
回避策としては複写先に円記号(\)を付ける。または下記のように強制的にファイルにecho F(ファイル) or D(ディレクトリ)を指定する。\\ | 回避策としては複写先に円記号(\)を付ける。または下記のように強制的にファイルにecho F(ファイル) or D(ディレクトリ)を指定する。\\ | ||
- | <wrap em>※複写元の下位フォルダに同じファイルがある場合、最後に見つかったファイルがコピーされる。</ | + | ※複写元の下位フォルダに同じファイルがある場合、最後に見つかったファイルがコピーされる。\\ |
その場合、XCopyをやめてCopy(複写先にフォルダの作成が必要)にするか、更新日が新しいのが確実なら「/ | その場合、XCopyをやめてCopy(複写先にフォルダの作成が必要)にするか、更新日が新しいのが確実なら「/ | ||
<code bat> | <code bat> |
it技術/バッチファイル.1509595840.txt.gz · 最終更新: 2017/11/02 13:10 by yajuadmin