#author("2023-09-01T18:06:52+09:00","default:irrp","irrp")
→Windowsコマンド

→PowerShell他

→言語・開発環境

→Windows一般

→シェルスクリプト


#contents

*関連Webサイト [#ka67aca8]

*一般 [#mc0ae9a7]
-[[pythonなら知ってる!人向けバッチファイルの解説 - Qiita>https://qiita.com/tz77/items/8e0b458c6f479cb2c72d]] 2023.9

-gotoの使い方が悪い、などと怒られることがあるが、以下のようにしていると怒られます。2023.2
 IF %1=="" goto ERR
--こうしないといけない
 IF "%1"=="" goto ERR

-[[Windowsのコマンドプロンプト/PowershellでANSIエスケープシーケンスを有効にする · ソフトウェアII>https://www.gavo.t.u-tokyo.ac.jp/~dsk_saito/lecture/software2/misc/misc01.html]] 2022.6
--コンピュータ\HKEY_CURRENT_USER\Console を選び、右クリックしてDWORD(32ビット)の変数を作成します。 
--VirtualTerminalLevel を 1

-[[知識ゼロからのwindowsバッチファイル超入門>https://jj-blues.com/cms/]] 2021.7

-[[開発に役立つ,BATファイルの書き方・パターン集 (コマンドプロンプトの定石を体系的に学び,バッチ中級者になろう)>http://d.hatena.ne.jp/language_and_engineering/20130502/PatternsOfMSDOSorBAT]] 2013.5.3

-[[DOS/V & Windowsコマンド・プロンプト・リファレンス>http://www.fpcu.jp/dosvcmd/index.htm]]

-[[バッチファイルの制御用コマンド>http://www.fpcu.jp/dosvcmd/batch.htm]] 2014.5.19


*TIPS [#ydea3c36]
-ZIPをデスクトップに解凍するバッチファイル 2023.2
 echo off
 if "%1"==""  goto ERR
 set ZIP_CMD=Expand-Archive -DestinationPath ('C:\Users\%USERNAME%\Desktop\log' + (Get-Date).ToString('yyyyMMdd_HHmmss_ffff')) -Path %1
 call powershell -command "%ZIP_CMD%"
 goto END
 :ERR
 echo "please input: myunzip <zip_file_path>"
 :END


-[[バッチファイルでCSVの文字コードを「Shift-JIS→UTF-8」に変換したい>https://teratail.com/questions/171691]] 2022.6
 powershell -Command "get-content data1.csv | Set-Content -Encoding UTF8 data2.csv"
 
 または
 
 @echo off
 :Shift_JIS -> UTF-8
 setlocal enabledelayedexpansion
 for %%f in (%*) do (
   echo %%~ff| findstr /l /e /i ".txt .csv"
   if !ERRORLEVEL! equ 0 (
     powershell -nop -c "&{[IO.File]::WriteAllText($args[1], [IO.File]::ReadAllText($args[0], [Text.Encoding]::GetEncoding(932)))}" \"%%~ff\" \"%%~ff.utf8%%~xf\"
   )
 )
 
-UTF-8→ShiftJIS 
 $child = Get-ChildItem .\ -File -Recurse -Include "*.csv"
 ForEach($file in $child){
	$fileName = Split-Path $file -Leaf
	Get-Content -Encoding utf8 $file | Set-Content -Encoding default ($fileName)
 }


-[[Win10起動時に仮想デスクトップ番号を指定してアプリを立ち上げる - Qiita>https://qiita.com/piyox2/items/328ca89a6e7effe58ced]] 2021
--https://github.com/eksime/VDesk

-[[ファイル内の文字列を置換する>https://jj-blues.com/cms/wantto-replacestring/]]  2021.7


-[[バッチファイルのパラメータの使い方>https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx]] 2017.8.30
--基本的には↓を使う。for で1行ずつ取得→置換→書き出しをする
 %[置換対象文字列]:[置き換えられる文字列]=[置き換え後の文字列]%

-[[バッチファイルからVBScriptを実行する>http://programming-10000.hatenadiary.jp/entry/20140516/1400233425]] 2014.5.16
 cscript test.vbs C:\Dev\VBScript\read.txt //nologo
 
 rem 処理結果の判定
 if %errorlevel% equ 0 (
  echo [BATCHLOG]NORMAL END
  pause
  exit 0
 ) else (
  echo [BATCHLOG]ABNORMAL END
  pause
  exit -1
 )


*バッチファイルで日付文字列を作るもうひとつのやり方 [#u366177e]

 for /F "tokens=1-3 delims=/ " %%a in ('date /t') do SET DT=%%a%%b%%c

-コマンドラインでは %%a ではなく %a とする
-date /t でスラッシュ入りの日付表示(YYYY/MM/DD)になっていることが前提


*バッチファイルなどでファイル名に日付を使う方法 [#la7af3be]
-環境変数''DATE''から文字列切り出しをする。ただしこの方法はWindowsNTでは使えなかったと思う(未確認)。
 実行例)
 lha32 a hoge_%date:~2,4%%date:~7,2%%date:~10,2%.lzh lzh\hoge.lzh
-上の実行例で''hoge_20040806.lzh''みたいな名前のファイルが作られる。~
-ただし''DATE''の中身は端末によって微妙に変わることがあるようなので注意。

-[[Windowsのバッチファイル中で日付をファイル名に使用する>https://www.atmarkit.co.jp/ait/articles/0405/01/news002.html]]

*DATEの出力形式の設定について [#t8b9941c]
-WindowsXPで「地域と言語のオプション」で日付の短い形式を変更すると表示形式が変えられる模様。
-「yyyy/MM/dd」から「ddd yyyy/MM/dd」に変更すると echo %DATE%の出力が
''「2004/09/29」''から''「水 2004/09/29」''のように変わる


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS