Archive for the ‘bat’ Category

共有 設定 解除

月曜日, 9月 9th, 2019

共有設定

net share "Cドライブ共有フォルダー"="C:\共有フォルダー" /GRANT:everyone,FULL

共有解除

net share "Cドライブ共有フォルダー" /DELETE

 

 

システム エラー 5 が発生しました。 アクセスが拒否されました。 管理者権限で実行

月曜日, 9月 9th, 2019

bat Wi-Fi 無効化/有効化

月曜日, 9月 9th, 2019
@echo off

netsh interface set interface "Wi-Fi" disable
netsh interface set interface "Wi-Fi" enable

bat IPアドレス設定 DHCP有効

月曜日, 9月 9th, 2019

IPアドレス設定

@echo off
netsh interface ipv4 set add name="イーサネット" source=static addr="192.168.100.1" mask="255.255.255.0" gateway="192.168.100.254"
pause
exit

DHCP有効

@echo off
netsh interface ipv4 set add name="イーサネット" source=DHCP
pause
exit

管理者権限で実行 bat

月曜日, 9月 9th, 2019
openfiles > nul
if errorlevel 1 (
    PowerShell.exe -Command Start-Process \"%~f0\" -Verb runas
    exit
)

これこれ!UACでなければなお良し

bat 文字化け Shift-JIS ANSI

月曜日, 9月 9th, 2019

batファイルをUnicode(UTF-8)で保存すると文字化ける
エンコード:日本語(Shift-JIS)もしくはANSIで保存すべし

日本語WindowsではShift-JISのことをANSIと呼んでいる
実際はShift-JISにMicrosoftが独自拡張を加えたCP932(コードページ932)という文字コード

bat cmd 違い

日曜日, 9月 8th, 2019

bat→昔のWindows(9X系)
cmd→最近のWindows(NT系)
2000/XP以降でbatは動作するが、95/98/MEでcmdは動作しない?

※違いはあるようだけど理解できる日が来るのか?↓

ERRORLEVEL環境変数
bat→エラーの時だけ変化する
cmd→エラー時だけでなくコマンド成功時も変化する

setLocal EnableDelayedExpansion と ERRORLEVEL で動作が異なる

IPアドレス DNS 設定 取得

水曜日, 9月 4th, 2019

 

●設定

@echo off
netsh interface ipv4 set add name="イーサネット" source=dhcp
netsh interface ipv4 set dns name="イーサネット" source=static addr="8.8.4.4" register=non validate=no
netsh interface ipv4 add dns name="イーサネット" addr="8.8.8.8" index=2 validate=no
pause
exit

2台のDNSサーバを割り当てる例
netsh interface ip set dns “ローカル エリア接続 3” static 172.16.1.11 primary
netsh interface ip add dns “ローカル エリア接続 3” 172.16.1.12

●取得
netsh interface ip show
show dnsservers

UNCパスはサポートされません

火曜日, 9月 3rd, 2019

コマンドの複数行の実行結果を変数に代入

金曜日, 8月 30th, 2019

無線LANのMACアドレスとコンピュータ名を取得し、サーバー上にあるCSVファイルに書き込む

@ECHO OFF
NET USE Z: <サーバーへのパス> <パスワード> <ユーザー名>
@ECHO “MACアドレスを登録します”
FOR /F %%a IN (‘ECHO “%COMPUTERNAME%”^,’) DO SET PCNAME=%%a
FOR /F “delims=*” %%i IN (‘getmac /v /fo csv ^| findstr ワイヤレス’) DO @SET MAC=%%i
ECHO %PCNAME% %MAC%>>z:\hogehoge.csv
NET USE Z: /delete
@ECHO “MACアドレスの登録が完了しました”
PAUSE

実行結果を複数行格納

@echo off
setlocal enabledelayedexpansion
set RESULT=
for /f "usebackq tokens=*" %%i in (`dir`) do (
  set RESULT=!RESULT!^

%%i
)
echo !RESULT!
endlocal

for文の中で値を変化させたい場合はfor文全体を、「setlocal enabledelayedexpansion」と「endlocal」で挟む。
for文内で使用する変数は「%」ではなく「!」で囲む。

@echo off
 
setlocal enabledelayedexpansion
 
set sum=0
for /l %%n in (1,1,10) do (
  set /a sum=!sum!+%%n
  echo !sum!
)
 
endlocal