共有 設定 解除
月曜日, 9月 9th, 2019共有設定
net share "Cドライブ共有フォルダー"="C:\共有フォルダー" /GRANT:everyone,FULL
共有解除
net share "Cドライブ共有フォルダー" /DELETE
共有設定
net share "Cドライブ共有フォルダー"="C:\共有フォルダー" /GRANT:everyone,FULL
共有解除
net share "Cドライブ共有フォルダー" /DELETE
@echo off
netsh interface set interface "Wi-Fi" disable
netsh interface set interface "Wi-Fi" enable
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
openfiles > nul
if errorlevel 1 (
PowerShell.exe -Command Start-Process \"%~f0\" -Verb runas
exit
)
これこれ!UACでなければなお良し
batファイルをUnicode(UTF-8)で保存すると文字化ける
エンコード:日本語(Shift-JIS)もしくはANSIで保存すべし
日本語WindowsではShift-JISのことをANSIと呼んでいる
実際はShift-JISにMicrosoftが独自拡張を加えたCP932(コードページ932)という文字コード
bat→昔のWindows(9X系)
cmd→最近のWindows(NT系)
2000/XP以降でbatは動作するが、95/98/MEでcmdは動作しない?
※違いはあるようだけど理解できる日が来るのか?↓
ERRORLEVEL環境変数
bat→エラーの時だけ変化する
cmd→エラー時だけでなくコマンド成功時も変化する
setLocal EnableDelayedExpansion と ERRORLEVEL で動作が異なる
●設定
@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
無線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